java类java.beans.PropertyDescriptor的实例源码

FieldHelper.java 文件源码 项目:tk-mybatis 阅读 19 收藏 0 点赞 0 评论 0
/**
 * 通过方法获取属性
 *
 * @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;
}
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);
    }
}


问题


面经


文章

微信
公众号

扫码关注公众号