/** * Locates property field. Field is being searched also in all * superclasses of current class. */ protected FieldDescriptor findField(String fieldName) { FieldDescriptor fieldDescriptor = classDescriptor.getFieldDescriptor(fieldName, true); if (fieldDescriptor != null) { return fieldDescriptor; } // field descriptor not found in this class // try to locate it in the superclasses Class[] superclasses = classDescriptor.getAllSuperclasses(); for (Class superclass : superclasses) { ClassDescriptor classDescriptor = ClassIntrospector.lookup(superclass); fieldDescriptor = classDescriptor.getFieldDescriptor(fieldName, true); if (fieldDescriptor != null) { return fieldDescriptor; } } // nothing found return null; }
/** * Locates property field. Field is being searched also in all * superclasses of current class. */ protected FieldDescriptor findField(final String fieldName) { FieldDescriptor fieldDescriptor = classDescriptor.getFieldDescriptor(fieldName, true); if (fieldDescriptor != null) { return fieldDescriptor; } // field descriptor not found in this class // try to locate it in the superclasses Class[] superclasses = classDescriptor.getAllSuperclasses(); for (Class superclass : superclasses) { ClassDescriptor classDescriptor = ClassIntrospector.get().lookup(superclass); fieldDescriptor = classDescriptor.getFieldDescriptor(fieldName, true); if (fieldDescriptor != null) { return fieldDescriptor; } } // nothing found return null; }
@Test void testSameFieldDifferentClass() { ClassDescriptor cd = ClassIntrospector.get().lookup(Abean.class); FieldDescriptor fd = cd.getFieldDescriptor("shared", false); assertNull(fd); fd = cd.getFieldDescriptor("shared", true); assertNotNull(fd); ClassDescriptor cd2 = ClassIntrospector.get().lookup(Bbean.class); FieldDescriptor fd2 = cd2.getFieldDescriptor("shared", true); assertNotEquals(fd, fd2); assertEquals(fd.getField(), fd2.getField()); }
@Test void testSerialUid() { ClassDescriptor cd = ClassIntrospector.get().lookup(Bbean.class); assertNull(cd.getFieldDescriptor("serialVersionUID", true)); }
@Test void testNormal() { ClassDescriptor cd = ClassIntrospector.get().lookup(Normal.class); FieldDescriptor fd = cd.getFieldDescriptor("input", true); assertEquals(String.class, fd.getField().getType()); assertEquals(String.class, fd.getRawType()); fd = cd.getFieldDescriptor("output", true); assertEquals(Integer.class, fd.getField().getType()); assertEquals(Integer.class, fd.getRawType()); PropertyDescriptor pd = cd.getPropertyDescriptor("input", true); assertEquals(String.class, pd.getType()); pd = cd.getPropertyDescriptor("output", true); assertEquals(Integer.class, pd.getType()); }
@Test void testGenAction() { ClassDescriptor cd = ClassIntrospector.get().lookup(GenAction.class); FieldDescriptor fd = cd.getFieldDescriptor("input", true); assertEquals(Object.class, fd.getField().getType()); assertEquals(String.class, fd.getRawType()); fd = cd.getFieldDescriptor("output", true); assertEquals(Object.class, fd.getField().getType()); assertEquals(Integer.class, fd.getRawType()); PropertyDescriptor pd = cd.getPropertyDescriptor("input", true); assertEquals(String.class, pd.getType()); pd = cd.getPropertyDescriptor("output", true); assertEquals(Integer.class, pd.getType()); pd = cd.getPropertyDescriptor("lina", true); assertEquals(String.class, pd.getType()); }
FieldDescriptor fd = cd.getFieldDescriptor("f", true); FieldDescriptor fd2 = cd.getFieldDescriptor("f2", true); FieldDescriptor fd3 = cd.getFieldDescriptor("f3", true); FieldDescriptor fd4 = cd.getFieldDescriptor("f4", true); fd = cd.getFieldDescriptor("f", true); fd2 = cd.getFieldDescriptor("f2", true); fd3 = cd.getFieldDescriptor("f3", true);
/** * Locates property field. Field is being searched also in all * superclasses of current class. */ protected FieldDescriptor findField(final String fieldName) { FieldDescriptor fieldDescriptor = classDescriptor.getFieldDescriptor(fieldName, true); if (fieldDescriptor != null) { return fieldDescriptor; } // field descriptor not found in this class // try to locate it in the superclasses Class[] superclasses = classDescriptor.getAllSuperclasses(); for (Class superclass : superclasses) { ClassDescriptor classDescriptor = ClassIntrospector.get().lookup(superclass); fieldDescriptor = classDescriptor.getFieldDescriptor(fieldName, true); if (fieldDescriptor != null) { return fieldDescriptor; } } // nothing found return null; }