Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class DataParam
- {
- public String name
- public boolean wasUpdated
- private String type
- private boolean isArray
- private Object data;
- public <T> DataParam(String name, Class<T> typeClass)
- {
- this.name = name;
- type = typeClass.getName();
- isArray = typeClass.isArray();
- data = null;
- wasUpdate = false;
- }
- public <T> T get(Class<T> typeClass)
- {
- if(type.equals(typeClass.getName()) && isArray == typeClass.isArray())
- return typeClass.cast(data);
- else
- return null;
- }
- public <T> T set(T obj, Class<T> typeClass)
- {
- if(type.equals(typeClass.getName()) && isArray == typeClass.isArray())
- data = (Object) obj;
- }
- public String doSomething()
- {
- //An example of doing different things based on type
- switch(type)
- {
- case "java.lang.String":
- if(isArray)
- return TakesAStringArray(get(String[].class));
- else
- return TakesAString(get(String.class));
- break;
- case "java.lang.Integer":
- return TakesAnInteger(get(Integer.class));
- break;
- case "myPackage.DataParam":
- return TakesADataParam(get(myPackage.DataParam.class));
- break;
- //default: Do nothing
- }
- }
- public DataObj
- {
- protected HashMap<String,DataParam> fields;
- //Other functions
- }
- public SpecificObj extends DataObj
- {
- public SpecificObj()
- {
- fields.add(new DataParam("name", String.class));
- fields.add(new DataParam("obj", myPackage.DataParam.class));
- fields.add(new DataParam("count", Integer.class));
- }
- }
- public class DataParam {
- public String name;
- public Class<?> dataClass;
- public boolean wasUpdated;
- private Object data;
- public DataParam(String name, Class<?> typeClass) {
- this.name = name;
- dataClass = typeClass;
- data = null;
- wasUpdated = false;
- }
- public <T> T get(Class<T> typeClass) {
- if(dataClass.equals(typeClass)) {
- return typeClass.cast(data);
- }
- return null;
- }
- public <T> T set(T obj, Class<T> typeClass) {
- if(dataClass.equals(typeClass)) {
- T toreturn = typeClass.cast(data);
- data = obj;
- return toreturn;
- }
- return null;
- }
- public String doSomething() {
- //An example of doing different things based on type
- //.......
- return null;
- }
- }
- String host = dataObj.get("host").get(String.class);
- String host = dataObj.getString("host");
- public String getString(String name) {
- return get(name, String.class);
- }
- public <T> T get(String name, Class<T> type) {
- return getParam(name).get(type);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement