diff options
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/configuration/Configurator.java')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/configuration/Configurator.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/configuration/Configurator.java b/BJC-Utils2/src/main/java/bjc/utils/configuration/Configurator.java new file mode 100644 index 0000000..e116dea --- /dev/null +++ b/BJC-Utils2/src/main/java/bjc/utils/configuration/Configurator.java @@ -0,0 +1,44 @@ +package bjc.utils.configuration; + +import java.io.InputStream; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; + +/** + * Bind the values in a prepared class to a config file + * + * @author ben + * + */ +public class Configurator { + /** + * Bind the values in a config file to the values in a class, + * substituting default values if none are appropriate + * + * @param <E> + * The type of the object to bind + * @param clasz + * The class of the object to bind + * @param inputSource + * The source to get input from + * @return A instance of the provided class, with values filled in from + * a config file + */ + public static <E> E readConfig(Class<E> clasz, + InputStream inputSource) { + try { + Constructor<E> noArgConstructor = clasz.getConstructor(); + + E backingStore = noArgConstructor.newInstance(); + + return backingStore; + } catch (NoSuchMethodException | SecurityException + | InstantiationException | IllegalAccessException + | IllegalArgumentException | InvocationTargetException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + + return null; + } + } +} |
