in uimaj-core/src/main/java/org/apache/uima/impl/UIMAFramework_impl.java [551:709]
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException {
if ("logger".equals(qName)) {
if (context != CONTEXT_FACTORY_CONFIG) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "element_unexpected_in_context",
new Object[] { "<logger>" }));
}
try {
// get logger class
// check first if a system property for the logger class was specified
String loggerClass = System.getProperty(LOGGER_CLASS_SYSTEM_PROPERTY);
if (loggerClass == null) {
// no system property was specified, use factoryConfig.xml setting
loggerClass = attributes.getValue("class");
}
mLoggerClass = Class.forName(loggerClass);
// get static method getInstance()
Method instanceMethod = mLoggerClass.getMethod("getInstance",
Constants.EMPTY_CLASS_ARRAY);
// invoke getInstance() method and retrieve default logger object
mDefaultLogger = (Logger) instanceMethod.invoke(null, Constants.EMPTY_CLASS_ARRAY);
} catch (Exception e) {
throw new SAXException(e);
}
} else if ("cpm".equals(qName)) {
if (context != CONTEXT_FACTORY_CONFIG) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "element_unexpected_in_context", new Object[] { "<cpm>" }));
}
mCpmImplClassName = attributes.getValue("class");
} else if ("resourceManager".equals(qName)) {
if (context != CONTEXT_FACTORY_CONFIG) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "element_unexpected_in_context",
new Object[] { "<resourceManager>" }));
}
mResourceManagerImplClassName = attributes.getValue("class");
} else if ("resourceManagerPearWrapper".equals(qName)) {
if (context != CONTEXT_FACTORY_CONFIG) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "element_unexpected_in_context",
new Object[] { "<resourceManagerPearWrapper>" }));
}
mResourceManagerPearWrapperImplClassName = attributes.getValue("class");
} else if ("configurationManager".equals(qName)) {
if (context != CONTEXT_FACTORY_CONFIG) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "element_unexpected_in_context",
new Object[] { "<configurationManager>" }));
}
mConfigurationManagerImplClassName = attributes.getValue("class");
} else if ("uimaContext".equals(qName)) {
if (context != CONTEXT_FACTORY_CONFIG) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "element_unexpected_in_context",
new Object[] { "<uimaContext>" }));
}
mUimaContextImplClassName = attributes.getValue("class");
} else if ("cpe".equals(qName)) {
if (context != CONTEXT_FACTORY_CONFIG) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "element_unexpected_in_context", new Object[] { "<cpe>" }));
}
mCpeClassName = attributes.getValue("class");
} else if ("timer".equals(qName)) {
if (context != CONTEXT_FACTORY_CONFIG) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "element_unexpected_in_context",
new Object[] { "<timer>" }));
}
mTimerClassName = attributes.getValue("class");
} else if ("resourceSpecifier".equals(qName)) {
if (mLoggerClass == null) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "expected_x_but_found_y",
new Object[] { "<logger>", "<resourceSpecifier>" }));
}
context = CONTEXT_RESOURCE_SPECIFIER;
} else if ("resource".equals(qName)) {
if (mLoggerClass == null) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "expected_x_but_found_y",
new Object[] { "<logger>", "<resource>" }));
}
context = CONTEXT_RESOURCE;
} else if ("simpleFactory".equals(qName)) {
if (context != CONTEXT_RESOURCE) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "element_unexpected_in_context",
new Object[] { "<simpleFactory>" }));
}
simpleFactory = new SimpleResourceFactory();
simpleFactorySpecifierType = attributes.getValue("specifier");
context = CONTEXT_SIMPLE_FACTORY;
} else if ("binding".equals(qName)) {
if (context == CONTEXT_RESOURCE_SPECIFIER) {
try {
mXMLParser.addMapping(attributes.getValue("element"), attributes.getValue("class"));
mResourceSpecifierFactory.addMapping(attributes.getValue("interface"),
attributes.getValue("class"));
} catch (ClassNotFoundException e) {
// not an error
if (debug) {
UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, CLASS_NAME.getName(),
"startElement", LOG_RESOURCE_BUNDLE,
"UIMA_class_in_framework_config_not_found__INFO", e.getLocalizedMessage());
}
}
} else if (context == CONTEXT_SIMPLE_FACTORY) {
try {
simpleFactory.addMapping(attributes.getValue("specifier"),
attributes.getValue("resource"));
} catch (ClassNotFoundException e) {
// not an error
if (debug) {
UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, CLASS_NAME.getName(),
"startElement", LOG_RESOURCE_BUNDLE,
"UIMA_class_in_framework_config_not_found__INFO", e.getLocalizedMessage());
}
}
} else {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "element_unexpected_in_context",
new Object[] { "<binding>" }));
}
} else if ("customFactory".equals(qName)) {
if (context != CONTEXT_RESOURCE) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "element_unexpected_in_context",
new Object[] { "<customFactory>" }));
}
try {
Class specifierClass = Class.forName(attributes.getValue("specifier"));
Class factoryClass = Class.forName(attributes.getValue("factoryClass"));
ResourceFactory factory = (ResourceFactory) factoryClass.newInstance();
mResourceFactory.registerFactory(specifierClass, factory);
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
// not an error
if (debug) {
UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, CLASS_NAME.getName(),
"startElement", LOG_RESOURCE_BUNDLE,
"UIMA_class_in_framework_config_not_found__INFO", e.getLocalizedMessage());
}
}
} else if ("factoryConfig".equals(qName)) {
if (context != CONTEXT_NONE) {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "element_unexpected_in_context",
new Object[] { "<factoryConfig>" }));
}
context = CONTEXT_FACTORY_CONFIG;
} else {
throw new SAXException(I18nUtil.localizeMessage(UIMAException.STANDARD_MESSAGE_CATALOG,
Locale.getDefault(), "sax_unknown_element", new Object[] { qName }));
}
}