/**
* 通过方法获取属性
*
* @param entityClass
* @return
*/
public List<EntityField> getProperties(Class<?> entityClass) {
Map<String, Class<?>> genericMap = _getGenericTypeMap(entityClass);
List<EntityField> entityFields = new ArrayList<EntityField>();
BeanInfo beanInfo;
try {
beanInfo = Introspector.getBeanInfo(entityClass);
} catch (IntrospectionException e) {
throw new MapperException(e);
}
PropertyDescriptor[] descriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor desc : descriptors) {
if (desc != null && !"class".equals(desc.getName())) {
EntityField entityField = new EntityField(null, desc);
if (desc.getReadMethod() != null
&& desc.getReadMethod().getGenericReturnType() != null
&& desc.getReadMethod().getGenericReturnType() instanceof TypeVariable) {
entityField.setJavaType(genericMap.get(((TypeVariable) desc.getReadMethod().getGenericReturnType()).getName()));
} else if (desc.getWriteMethod() != null
&& desc.getWriteMethod().getGenericParameterTypes() != null
&& desc.getWriteMethod().getGenericParameterTypes().length == 1
&& desc.getWriteMethod().getGenericParameterTypes()[0] instanceof TypeVariable) {
entityField.setJavaType(genericMap.get(((TypeVariable) desc.getWriteMethod().getGenericParameterTypes()[0]).getName()));
}
entityFields.add(entityField);
}
}
return entityFields;
}
java类java.beans.PropertyDescriptor的实例源码
FieldHelper.java 文件源码
项目:tk-mybatis
阅读 19
收藏 0
点赞 0
评论 0
DeleteDocumentAttachmentTransactionBeanInfo.java 文件源码
项目:convertigo-engine
阅读 13
收藏 0
点赞 0
评论 0
public DeleteDocumentAttachmentTransactionBeanInfo() {
try {
beanClass = DeleteDocumentAttachmentTransaction.class;
additionalBeanClass = AbstractDocumentTransaction.class;
resourceBundle = getResourceBundle("res/DeleteDocumentAttachmentTransaction");
displayName = getExternalizedString("display_name");
shortDescription = getExternalizedString("short_description");
iconNameC16 = "/com/twinsoft/convertigo/beans/transactions/couchdb/images/deletedocumentattachment_color_16x16.png";
iconNameC32 = "/com/twinsoft/convertigo/beans/transactions/couchdb/images/deletedocumentattachment_color_32x32.png";
properties = new PropertyDescriptor[3];
properties[0] = new PropertyDescriptor("q_rev", beanClass, "getQ_rev", "setQ_rev");
properties[0].setDisplayName(getExternalizedString("property.q_rev.display_name"));
properties[0].setShortDescription(getExternalizedString("property.q_rev.short_description"));
properties[1] = new PropertyDescriptor("q_batch", beanClass, "getQ_batch", "setQ_batch");
properties[1].setDisplayName(getExternalizedString("property.q_batch.display_name"));
properties[1].setShortDescription(getExternalizedString("property.q_batch.short_description"));
properties[2] = new PropertyDescriptor("p_attname", beanClass, "getP_attname", "setP_attname");
properties[2].setDisplayName(getExternalizedString("property.p_attname.display_name"));
properties[2].setShortDescription(getExternalizedString("property.p_attname.short_description"));
}
catch(Exception e) {
com.twinsoft.convertigo.engine.Engine.logBeans.error("Exception with bean info; beanClass=" + beanClass.toString(), e);
}
}
MouseStatementBeanInfo.java 文件源码
项目:convertigo-engine
阅读 13
收藏 0
点赞 0
评论 0
public MouseStatementBeanInfo() {
try {
beanClass = MouseStatement.class;
additionalBeanClass = com.twinsoft.convertigo.beans.statements.SimpleEventStatement.class;
iconNameC16 = "/com/twinsoft/convertigo/beans/statements/images/mouse_16x16.png";
iconNameC32 = "/com/twinsoft/convertigo/beans/statements/images/mouse_32x32.png";
resourceBundle = getResourceBundle("res/MouseStatement");
displayName = resourceBundle.getString("display_name");
shortDescription = resourceBundle.getString("short_description");
properties = new PropertyDescriptor[0];
}
catch(Exception e) {
com.twinsoft.convertigo.engine.Engine.logBeans.error("Exception with bean info; beanClass=" + beanClass.toString(), e);
}
}
WriteXMLStepBeanInfo.java 文件源码
项目:convertigo-engine
阅读 13
收藏 0
点赞 0
评论 0
public WriteXMLStepBeanInfo() {
try {
beanClass = WriteXMLStep.class;
additionalBeanClass = com.twinsoft.convertigo.beans.steps.WriteFileStep.class;
iconNameC16 = "/com/twinsoft/convertigo/beans/steps/images/xmlW_16x16.png";
iconNameC32 = "/com/twinsoft/convertigo/beans/steps/images/xmlW_32x32.png";
resourceBundle = getResourceBundle("res/WriteXMLStep");
displayName = resourceBundle.getString("display_name");
shortDescription = resourceBundle.getString("short_description");
properties = new PropertyDescriptor[1];
properties[0] = new PropertyDescriptor("defaultRootTagname", beanClass, "getDefaultRootTagname", "setDefaultRootTagname");
properties[0].setDisplayName(getExternalizedString("property.defaultroottagname.display_name"));
properties[0].setShortDescription(getExternalizedString("property.defaultroottagname.short_description"));
properties[0].setValue(DatabaseObject.PROPERTY_XMLNAME, Boolean.TRUE);
}
catch(Exception e) {
com.twinsoft.convertigo.engine.Engine.logBeans.error("Exception with bean info; beanClass=" + beanClass.toString(), e);
}
}
TestMethodOrderDependence.java 文件源码
项目:openjdk-jdk10
阅读 13
收藏 0
点赞 0
评论 0
public static void main(final String[] args) throws Exception {
final BeanInfo beanInfo = Introspector.getBeanInfo(Sub.class);
final PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
for (final PropertyDescriptor pd : pds) {
System.err.println("pd = " + pd);
final Class<?> type = pd.getPropertyType();
if (type != Class.class && type != Long[].class
&& type != Integer.class && type != Enum.class) {
throw new RuntimeException(Arrays.toString(pds));
}
}
}
ContextGetStatementBeanInfo.java 文件源码
项目:convertigo-engine
阅读 13
收藏 0
点赞 0
评论 0
public ContextGetStatementBeanInfo() {
try {
beanClass = ContextGetStatement.class;
additionalBeanClass = com.twinsoft.convertigo.beans.core.Statement.class;
iconNameC16 = "/com/twinsoft/convertigo/beans/statements/images/contextget_16x16.png";
iconNameC32 = "/com/twinsoft/convertigo/beans/statements/images/contextget_32x32.png";
resourceBundle = getResourceBundle("res/ContextGetStatement");
displayName = resourceBundle.getString("display_name");
shortDescription = resourceBundle.getString("short_description");
properties = new PropertyDescriptor[2];
properties[0] = new PropertyDescriptor("key", beanClass, "getKey", "setKey");
properties[0].setDisplayName(getExternalizedString("property.key.display_name"));
properties[0].setShortDescription(getExternalizedString("property.key.short_description"));
properties[1] = new PropertyDescriptor("variable", beanClass, "getVariable", "setVariable");
properties[1].setDisplayName(getExternalizedString("property.variable.display_name"));
properties[1].setShortDescription(getExternalizedString("property.variable.short_description"));
}
catch(Exception e) {
com.twinsoft.convertigo.engine.Engine.logBeans.error("Exception with bean info; beanClass=" + beanClass.toString(), e);
}
}
PropertyUtilsTest.java 文件源码
项目:reflection-util
阅读 20
收藏 0
点赞 0
评论 0
@Test
public void testReadDirectly_PropertyWithoutField() throws Exception {
TestEntity testEntity = new TestEntity();
PropertyDescriptor property = PropertyUtils.getPropertyDescriptor(TestEntity.class, TestEntity::getPropertyWithoutField);
try {
PropertyUtils.readDirectly(testEntity, property);
fail("ReflectionRuntimeException expected");
} catch (ReflectionRuntimeException e) {
assertEquals("Failed to read TestEntity.propertyWithoutField", e.getMessage());
}
}
CreateDirectoryStepBeanInfo.java 文件源码
项目:convertigo-engine
阅读 13
收藏 0
点赞 0
评论 0
public CreateDirectoryStepBeanInfo() {
try {
beanClass = CreateDirectoryStep.class;
additionalBeanClass = com.twinsoft.convertigo.beans.core.Step.class;
iconNameC16 = "/com/twinsoft/convertigo/beans/steps/images/createDirectory_16x16.png";
iconNameC32 = "/com/twinsoft/convertigo/beans/steps/images/createDirectory_32x32.png";
resourceBundle = getResourceBundle("res/CreateDirectoryStep");
displayName = resourceBundle.getString("display_name");
shortDescription = resourceBundle.getString("short_description");
properties = new PropertyDescriptor[2];
properties[0] = new PropertyDescriptor("destinationPath", beanClass, "getDestinationPath", "setDestinationPath");
properties[0].setExpert(true);
properties[0].setDisplayName(getExternalizedString("property.destinationPath.display_name"));
properties[0].setShortDescription(getExternalizedString("property.destinationPath.short_description"));
properties[0].setValue("scriptable", Boolean.TRUE);
properties[1] = new PropertyDescriptor("createNonExistentParentDirectories", beanClass, "isCreateNonExistentParentDirectories", "setCreateNonExistentParentDirectories");
properties[1].setDisplayName(getExternalizedString("property.createNonExistentParentDirectories.display_name"));
properties[1].setShortDescription(getExternalizedString("property.createNonExistentParentDirectories.short_description"));
properties[1].setExpert(true);
}
catch(Exception e) {
com.twinsoft.convertigo.engine.Engine.logBeans.error("Exception with bean info; beanClass=" + beanClass.toString(), e);
}
}
GetServerUuidsTransactionBeanInfo.java 文件源码
项目:convertigo-engine
阅读 13
收藏 0
点赞 0
评论 0
public GetServerUuidsTransactionBeanInfo() {
try {
beanClass = GetServerUuidsTransaction.class;
additionalBeanClass = AbstractCouchDbTransaction.class;
resourceBundle = getResourceBundle("res/GetServerUuidsTransaction");
displayName = getExternalizedString("display_name");
shortDescription = getExternalizedString("short_description");
iconNameC16 = "/com/twinsoft/convertigo/beans/transactions/couchdb/images/getserveruuids_color_16x16.png";
iconNameC32 = "/com/twinsoft/convertigo/beans/transactions/couchdb/images/getserveruuids_color_32x32.png";
properties = new PropertyDescriptor[1];
properties[0] = new PropertyDescriptor("q_count", beanClass, "getQ_count", "setQ_count");
properties[0].setDisplayName(getExternalizedString("property.q_count.display_name"));
properties[0].setShortDescription(getExternalizedString("property.q_count.short_description"));
}
catch(Exception e) {
com.twinsoft.convertigo.engine.Engine.logBeans.error("Exception with bean info; beanClass=" + beanClass.toString(), e);
}
}
IncludeJsr303AnnotationsIT.java 文件源码
项目:GitHub
阅读 13
收藏 0
点赞 0
评论 0
private static Object createInstanceWithPropertyValue(Class type, String propertyName, Object propertyValue) {
try {
Object instance = type.newInstance();
PropertyDescriptor propertyDescriptor = new PropertyDescriptor(propertyName, type);
propertyDescriptor.getWriteMethod().invoke(instance, propertyValue);
return instance;
} catch (Exception e) {
throw new RuntimeException(e);
}
}