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.gnv.artifacts.GNVArtifactBase; tim@52: tim@52: /** tim@52: * @author Tim Englich tim@171: * 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@171: tim@52: private static TransitionFactory instance = null; tim@171: tim@52: /** tim@52: * Constructor tim@52: */ tim@52: public TransitionFactory() { tim@52: super(); tim@52: } tim@171: tim@171: public static TransitionFactory getInstance() { tim@171: if (instance == null) { tim@52: instance = new TransitionFactory(); tim@52: } tim@52: return instance; tim@52: } tim@171: tim@171: public Transition createTransition(Node configuration) { tim@52: log.debug("TransitionFactory.createTransition"); tim@52: Transition transition = null; tim@52: try { tim@204: String classname = ((org.w3c.dom.Element)configuration).getAttribute("transition"); tim@171: transition = (Transition) (Class.forName(classname).newInstance()); tim@52: transition.setup(configuration); tim@52: } catch (InstantiationException e) { tim@171: log.error(e, e); tim@52: } catch (IllegalAccessException e) { tim@171: log.error(e, e); tim@52: } catch (ClassNotFoundException e) { tim@171: log.error(e, e); tim@52: } tim@52: return transition; tim@52: } tim@52: tim@52: }