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