diff -r 0684883953ba -r 7d86d90e6e0e java/parameter-lister/src/info/glogalcode/parameterLister/modules/AbstractModuleFactory.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/parameter-lister/src/info/glogalcode/parameterLister/modules/AbstractModuleFactory.java Sat Sep 10 23:03:43 2016 +0200 @@ -0,0 +1,35 @@ +package info.glogalcode.parameterLister.modules; + +import info.glogalcode.parameterLister.OutputModule; +import info.glogalcode.parameterLister.OutputModuleFactory; +import info.glogalcode.parameterLister.OutputModuleFactoryException; + +/** + * + * @author Ing. František Kučera (frantovo.cz) + */ +public abstract class AbstractModuleFactory implements OutputModuleFactory { + + private final Class clazz; + private final String name; + + public AbstractModuleFactory(String name, Class clazz) { + this.clazz = clazz; + this.name = name; + } + + @Override + public String getName() { + return name; + } + + @Override + public OutputModule createModule() throws OutputModuleFactoryException { + try { + return clazz.newInstance(); + } catch (IllegalAccessException | InstantiationException e) { + throw new OutputModuleFactoryException("Error while creating instance of class " + clazz + " for module " + name, e); + } + } + +}