Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. public class DataParam
  2. {
  3. public String name
  4. public boolean wasUpdated
  5. private String type
  6. private boolean isArray
  7. private Object data;
  8.  
  9. public <T> DataParam(String name, Class<T> typeClass)
  10. {
  11. this.name = name;
  12. type = typeClass.getName();
  13. isArray = typeClass.isArray();
  14. data = null;
  15. wasUpdate = false;
  16. }
  17. public <T> T get(Class<T> typeClass)
  18. {
  19. if(type.equals(typeClass.getName()) && isArray == typeClass.isArray())
  20. return typeClass.cast(data);
  21. else
  22. return null;
  23. }
  24. public <T> T set(T obj, Class<T> typeClass)
  25. {
  26. if(type.equals(typeClass.getName()) && isArray == typeClass.isArray())
  27. data = (Object) obj;
  28. }
  29. public String doSomething()
  30. {
  31. //An example of doing different things based on type
  32. switch(type)
  33. {
  34. case "java.lang.String":
  35. if(isArray)
  36. return TakesAStringArray(get(String[].class));
  37. else
  38. return TakesAString(get(String.class));
  39. break;
  40. case "java.lang.Integer":
  41. return TakesAnInteger(get(Integer.class));
  42. break;
  43. case "myPackage.DataParam":
  44. return TakesADataParam(get(myPackage.DataParam.class));
  45. break;
  46. //default: Do nothing
  47. }
  48. }
  49. public DataObj
  50. {
  51. protected HashMap<String,DataParam> fields;
  52. //Other functions
  53. }
  54. public SpecificObj extends DataObj
  55. {
  56. public SpecificObj()
  57. {
  58. fields.add(new DataParam("name", String.class));
  59. fields.add(new DataParam("obj", myPackage.DataParam.class));
  60. fields.add(new DataParam("count", Integer.class));
  61. }
  62. }
  63.  
  64. public class DataParam {
  65. public String name;
  66. public Class<?> dataClass;
  67. public boolean wasUpdated;
  68. private Object data;
  69.  
  70. public DataParam(String name, Class<?> typeClass) {
  71. this.name = name;
  72. dataClass = typeClass;
  73. data = null;
  74. wasUpdated = false;
  75. }
  76.  
  77. public <T> T get(Class<T> typeClass) {
  78. if(dataClass.equals(typeClass)) {
  79. return typeClass.cast(data);
  80. }
  81. return null;
  82. }
  83.  
  84. public <T> T set(T obj, Class<T> typeClass) {
  85. if(dataClass.equals(typeClass)) {
  86. T toreturn = typeClass.cast(data);
  87. data = obj;
  88. return toreturn;
  89. }
  90. return null;
  91. }
  92.  
  93. public String doSomething() {
  94. //An example of doing different things based on type
  95. //.......
  96. return null;
  97. }
  98. }
  99.  
  100. String host = dataObj.get("host").get(String.class);
  101.  
  102. String host = dataObj.getString("host");
  103.  
  104. public String getString(String name) {
  105. return get(name, String.class);
  106. }
  107.  
  108. public <T> T get(String name, Class<T> type) {
  109. return getParam(name).get(type);
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement