protected StrategyBase(){\r
}\r
\r
-\r
- /**\r
- * Computes all fields recursively\r
- * @param clazz\r
- * @return\r
- */\r
- protected static Map<String, Field> getAllNonStaticNonTransientFields(Class clazz, boolean includeStatic, boolean includeTransient, boolean makeAccessible) {\r
- Map<String, Field> result = new HashMap<String, Field>();\r
- //exclude static\r
- for (Field field: clazz.getDeclaredFields()){\r
- if (includeStatic || ! Modifier.isStatic(field.getModifiers())){\r
- if (includeTransient || ! isTransient(field)){\r
- field.setAccessible(makeAccessible);\r
- result.put(field.getName(), field);\r
- }\r
- }\r
- }\r
- \r
- //include superclass fields\r
- Class superclass = clazz.getSuperclass();\r
- if (CdmBase.class.isAssignableFrom(superclass)){\r
- result.putAll(getAllNonStaticNonTransientFields(superclass, includeStatic, includeTransient, makeAccessible));\r
- }\r
- return result;\r
- }\r
\r
\r
- /**\r
- * Returns true, if field has an annotation of type javax.persistence.Annotation\r
- * @param field\r
- * @return\r
- */\r
- protected static boolean isTransient(Field field) {\r
- for (Annotation annotation : field.getAnnotations()){\r
- //if (Transient.class.isAssignableFrom(annotation.annotationType())){\r
- if (annotation.annotationType() == Transient.class){\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
\r
/**\r
* @param fieldType\r
return false;\r
}\r
}\r
+ \r
+ \r
}\r