franta-hg@21: package info.glogalcode.parameterLister.modules; franta-hg@21: franta-hg@21: import info.glogalcode.parameterLister.OutputModule; franta-hg@21: import info.glogalcode.parameterLister.OutputModuleFactory; franta-hg@21: import info.glogalcode.parameterLister.OutputModuleFactoryException; franta-hg@21: franta-hg@21: /** franta-hg@21: * franta-hg@21: * @author Ing. František Kučera (frantovo.cz) franta-hg@21: */ franta-hg@21: public abstract class AbstractModuleFactory implements OutputModuleFactory { franta-hg@21: franta-hg@21: private final Class clazz; franta-hg@21: private final String name; franta-hg@21: franta-hg@21: public AbstractModuleFactory(String name, Class clazz) { franta-hg@21: this.clazz = clazz; franta-hg@21: this.name = name; franta-hg@21: } franta-hg@21: franta-hg@21: @Override franta-hg@21: public String getName() { franta-hg@21: return name; franta-hg@21: } franta-hg@21: franta-hg@21: @Override franta-hg@21: public OutputModule createModule() throws OutputModuleFactoryException { franta-hg@21: try { franta-hg@21: return clazz.newInstance(); franta-hg@21: } catch (IllegalAccessException | InstantiationException e) { franta-hg@21: throw new OutputModuleFactoryException("Error while creating instance of class " + clazz + " for module " + name, e); franta-hg@21: } franta-hg@21: } franta-hg@21: franta-hg@21: }