tim@52: /** tim@52: * tim@52: */ tim@52: package de.intevation.gnv.transition; tim@52: tim@52: import org.apache.log4j.Logger; tim@52: import org.w3c.dom.Node; tim@52: tim@52: import de.intevation.artifactdatabase.Config; tim@52: import de.intevation.gnv.artifacts.GNVArtifactBase; tim@52: tim@52: /** tim@52: * @author Tim Englich tim@52: * tim@52: */ tim@52: public class TransitionFactory { tim@52: tim@52: /** tim@52: * the logger, used to log exceptions and additonaly information tim@52: */ tim@52: private static Logger log = Logger.getLogger(GNVArtifactBase.class); tim@52: tim@52: private static TransitionFactory instance = null; tim@52: /** tim@52: * Constructor tim@52: */ tim@52: public TransitionFactory() { tim@52: super(); tim@52: } tim@52: tim@52: public static TransitionFactory getInstance(){ tim@52: if (instance == null){ tim@52: instance = new TransitionFactory(); tim@52: } tim@52: return instance; tim@52: } tim@52: tim@52: tim@52: public Transition createTransition(Node configuration){ tim@52: log.debug("TransitionFactory.createTransition"); tim@52: Transition transition = null; tim@52: try { tim@52: String classname = Config.getStringXPath(configuration, "@transition"); tim@52: transition = (Transition)(Class.forName(classname).newInstance()); tim@52: transition.setup(configuration); tim@52: } catch (InstantiationException e) { tim@52: log.error(e,e); tim@52: } catch (IllegalAccessException e) { tim@52: log.error(e,e); tim@52: } catch (ClassNotFoundException e) { tim@52: log.error(e,e); tim@52: } tim@52: return transition; tim@52: } tim@52: tim@52: }