⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 defaultpreferencesettingsloader.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JAVA
字号:
package com.esri.solutions.jitk.common.personalization;

import java.io.InputStream;
import java.text.MessageFormat;

import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

import com.esri.solutions.jitk.personalization.data.beans.v1.PreferenceSettingsType;

public class DefaultPreferenceSettingsLoader {

	
	private static final String WARN_CANNOT_FIND_RESOURCE_PATH = "Unable to initialize Default Preference Settings, cannot find Resource Path {0}";
	private static final String WARN_NULL_SERVLET_CONTEXT = "Unable to initialize Default Preference Settings, cannot get handle to ServletContext.";
	private static final String WARN_NULL_FACES_CONTEXT = "Unable to initialize Default Preference Settings, unable to get handle to FacesContext";
	private static final String WARN_FAILED_INIT = "Unable to initialize Default Preference Settings";
	private static final String JAXB_BEAN_PACKAGE_NAME = "com.esri.solutions.jitk.personalization.data.beans.v1";
	
	private static final Logger LOG = LogManager.getLogger(DefaultPreferenceSettingsLoader.class);
	
	
	private String m_path;
	
	public void setResourcePath (String path) {
		if (path == null) {
			throw new NullPointerException();
		}
		m_path = path;
	}
	
	public PreferenceSettingsType getDefaultPreferenceSettings () {
		if (m_path == null) {
			throw new IllegalStateException();
		}
		PreferenceSettingsType defaultPrefs = null;
		FacesContext fc = FacesContext.getCurrentInstance();
		
		if (fc == null) {
			LOG.warn(WARN_NULL_FACES_CONTEXT);
			return null;
		}
		
		ServletContext ctx = (ServletContext) fc.getExternalContext().getContext();
		
		if (ctx == null) {
			LOG.warn(WARN_NULL_SERVLET_CONTEXT);
			return null;
		}
		
		InputStream defaultIn = ctx.getResourceAsStream(m_path);
		
		if (defaultIn == null) {
			LOG.warn(MessageFormat.format(WARN_CANNOT_FIND_RESOURCE_PATH, m_path));
			return null;
		}
		
		try {
			JAXBContext jaxb = JAXBContext.newInstance(JAXB_BEAN_PACKAGE_NAME);
			Unmarshaller unmarshaller = jaxb.createUnmarshaller();
			defaultPrefs = (PreferenceSettingsType) unmarshaller.unmarshal(defaultIn);
			
			return defaultPrefs;
			
		} catch (JAXBException e) {
			LOG.warn(WARN_FAILED_INIT, e);
			return null;
		}
	}
	
}

⌨️ 快捷键说明

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