tim@71: /** tim@71: * tim@71: */ tim@71: package de.intevation.gnv.utils; tim@71: tim@71: import org.apache.log4j.Logger; tim@71: import org.w3c.dom.Document; tim@71: import org.w3c.dom.Node; tim@71: tim@71: import de.intevation.artifacts.ArtifactFactory; tim@71: tim@71: tim@71: /** tim@71: * @author Tim Englich tim@71: * tim@71: */ tim@71: public class ArtifactFactoryUtilities { tim@71: /** tim@71: * the logger, used to log exceptions and additonaly information tim@71: */ tim@71: private static Logger log = Logger.getLogger(ArtifactFactoryUtilities.class); tim@71: /** tim@71: * Constructor tim@71: */ tim@71: public ArtifactFactoryUtilities() { tim@71: } tim@71: tim@71: public ArtifactFactory createArtitfactFactor(Document config, Node artifactFactoryNode){ tim@71: String className =artifactFactoryNode.getTextContent(); tim@71: tim@71: ArtifactFactory factory = null; tim@71: tim@71: try { tim@71: Class clazz = Class.forName(className); tim@71: factory = (ArtifactFactory)clazz.newInstance(); tim@71: } tim@71: catch (ClassNotFoundException cnfe) { tim@71: log.error(cnfe.getLocalizedMessage(), cnfe); tim@71: } tim@71: catch (InstantiationException ie) { tim@71: log.error(ie.getLocalizedMessage(), ie); tim@71: } tim@71: catch (ClassCastException cce) { tim@71: log.error(cce.getLocalizedMessage(), cce); tim@71: } tim@71: catch (IllegalAccessException iae) { tim@71: log.error(iae.getLocalizedMessage(), iae); tim@71: } tim@71: tim@71: if (factory != null) { tim@71: factory.setup(config, artifactFactoryNode); tim@71: log.info("Registering '" + factory.getName() + "' as artifact factory."); tim@71: } tim@71: return factory; tim@71: } tim@71: }