📄 defaultpreferencesettingsloader.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 + -