LwIntrospectedProperty (final Class<?> propertyType, final String name) { LwIntrospectedProperty property = propertyFromClassName(propertyType.getName(), name); if (property == null) { if (Component.class.isAssignableFrom(propertyType)) { property = new LwIntroComponentProperty(name, propertyType.getName()); } else if (ListModel.class.isAssignableFrom(propertyType)) { property = new LwIntroListModelProperty(name, propertyType.getName()); } else if (propertyType.getSuperclass() != null && "java.lang.Enum".equals(propertyType.getSuperclass().getName())) { property = new LwIntroEnumProperty(name, propertyType); } } return property; }