java/parameter-lister/src/info/glogalcode/parameterLister/modules/AbstractModuleFactory.java
author František Kučera <franta-hg@frantovo.cz>
Sat, 10 Sep 2016 23:03:43 +0200
changeset 21 7d86d90e6e0e
child 28 bfef9f34e438
permissions -rw-r--r--
Java version (some old source code)
franta-hg@21
     1
package info.glogalcode.parameterLister.modules;
franta-hg@21
     2
franta-hg@21
     3
import info.glogalcode.parameterLister.OutputModule;
franta-hg@21
     4
import info.glogalcode.parameterLister.OutputModuleFactory;
franta-hg@21
     5
import info.glogalcode.parameterLister.OutputModuleFactoryException;
franta-hg@21
     6
franta-hg@21
     7
/**
franta-hg@21
     8
 *
franta-hg@21
     9
 * @author Ing. František Kučera (frantovo.cz)
franta-hg@21
    10
 */
franta-hg@21
    11
public abstract class AbstractModuleFactory implements OutputModuleFactory {
franta-hg@21
    12
franta-hg@21
    13
	private final Class<? extends OutputModule> clazz;
franta-hg@21
    14
	private final String name;
franta-hg@21
    15
franta-hg@21
    16
	public AbstractModuleFactory(String name, Class<? extends OutputModule> clazz) {
franta-hg@21
    17
		this.clazz = clazz;
franta-hg@21
    18
		this.name = name;
franta-hg@21
    19
	}
franta-hg@21
    20
franta-hg@21
    21
	@Override
franta-hg@21
    22
	public String getName() {
franta-hg@21
    23
		return name;
franta-hg@21
    24
	}
franta-hg@21
    25
franta-hg@21
    26
	@Override
franta-hg@21
    27
	public OutputModule createModule() throws OutputModuleFactoryException {
franta-hg@21
    28
		try {
franta-hg@21
    29
			return clazz.newInstance();
franta-hg@21
    30
		} catch (IllegalAccessException | InstantiationException e) {
franta-hg@21
    31
			throw new OutputModuleFactoryException("Error while creating instance of class " + clazz + " for module " + name, e);
franta-hg@21
    32
		}
franta-hg@21
    33
	}
franta-hg@21
    34
franta-hg@21
    35
}