/** * This method return all the fields (including private) until the given parameterized class * * @param subClass Class * @return List<Field> * @should return only the sub class fields of given parameterized class */ public List<Field> getInheritedFields(Class<?> subClass) { List<Field> allFields = getAllFields(subClass); for (Iterator<Field> iterator = allFields.iterator(); iterator.hasNext();) { Field field = iterator.next(); if (!hasField(field)) { iterator.remove(); } } return allFields; }
/** * @see Reflect#hasField(Field) */ @Test public void xhasField_shouldReturnTrueIfGivenFieldIsDeclaredInParameterizedClassOrSubClass() { Reflect reflect = new Reflect(OpenmrsObject.class); List<Field> allFields = Reflect.getAllFields(OpenmrsObjectImp.class); Field genericCollectionField = findFieldByName(allFields, "genericCollectionField"); Assert.assertTrue(reflect.hasField(genericCollectionField)); }
/** * @see Reflect#hasField(Field) */ @Test public void xhasField_shouldReturnFalseIfGivenFieldIsNotDeclaredInParameterizedClassOrItsSubClass() { Reflect reflect = new Reflect(OpenmrsObject.class); List<Field> allFields = Reflect.getAllFields(OpenmrsObjectImp.class); Field normalClassField = findFieldByName(allFields, "normalClassField"); Assert.assertFalse(reflect.hasField(normalClassField)); }