wcscapabilitiesparserfactory.java

来自「esri的ArcGIS Server超级学习模板程序(for java)」· Java 代码 · 共 77 行

JAVA
77
字号
package com.esri.solutions.jitk.datasources.ogc.wcs.parsing;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.esri.solutions.jitk.datasources.exceptions.ParserNotFoundException;

/**
 * @author vlad2928
 *
 */
public class WCSCapabilitiesParserFactory {

	private static Map<String, String> classNames = new HashMap<String, String>();
	
	static {
		classNames.put("1.1.1", com.esri.solutions.jitk.datasources.ogc.wcs.parsing.version111.WCSCapabilitiesParser.class.getName());
		classNames.put("1.1.0", com.esri.solutions.jitk.datasources.ogc.wcs.parsing.version110.WCSCapabilitiesParser.class.getName());
		classNames.put("1.0.0", com.esri.solutions.jitk.datasources.ogc.wcs.parsing.version100.WCSCapabilitiesParser.class.getName());
	}
	
	public static synchronized Map<String, String> getClassNames() {
		return WCSCapabilitiesParserFactory.classNames;
	}
	
	public static synchronized void setClassNames(Map<String, String> classNames) {
		WCSCapabilitiesParserFactory.classNames = classNames;
	}

	public static synchronized void setClassName(String key, String className) {
		WCSCapabilitiesParserFactory.classNames.put(key, className);
	}
	
	private static Object newInstance(String className) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
		if(className == null) {
			throw new ClassNotFoundException("Class name is null.");
		} else {
			Class<?> classObject = Class.forName(className);
			return classObject.newInstance();
		}
	}
	
	public static List<String> getSupportedVersions() {
		List<String> versions = new ArrayList<String>(classNames.keySet());
		Collections.sort(versions);
		Collections.reverse(versions);
		
		return versions;
	}
	
	public static boolean isSupportedVersion(String version) {
		return classNames.keySet().contains(version);
	}
	
	public static IWCSCapabilitiesParser getInstance(String version) throws ParserNotFoundException {
		
		IWCSCapabilitiesParser parser = null;
		
		try {
			parser = (IWCSCapabilitiesParser)newInstance(classNames.get(version));
		
		} catch(ClassNotFoundException ex) {
			throw new ParserNotFoundException(ex.getMessage());
				
		} catch(IllegalAccessException ex) {
			throw new ParserNotFoundException(ex.getMessage());
				
		} catch(InstantiationException ex) {
			throw new ParserNotFoundException(ex.getMessage());
		}
		
		return parser;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?