From a023de85aa08c8f2b8b2441c6b14064eabee2775 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Sat, 2 Apr 2016 15:07:33 -0400 Subject: Began work on general configuration stuff. I'll leave this sit for a while, and come back to it after some thought --- .../java/bjc/utils/configuration/Configurator.java | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 BJC-Utils2/src/main/java/bjc/utils/configuration/Configurator.java (limited to 'BJC-Utils2/src/main/java/bjc/utils/configuration/Configurator.java') 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 + * 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 readConfig(Class clasz, + InputStream inputSource) { + try { + Constructor 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; + } + } +} -- cgit v1.2.3