AccessibleProperty.java 文件源码

java
阅读 33 收藏 0 点赞 0 评论 0

项目:warpdb 作者:
@SuppressWarnings({ "unchecked", "rawtypes" })
private AccessibleProperty(final Class<?> type, final String propertyName, final AccessibleObject accessible,
        final PropertyGetter getter, final PropertySetter setter) {
    accessible.setAccessible(true);
    this.accessible = accessible;
    // check:
    AttributeConverter<Object, Object> converter = getConverter(accessible);
    String columnDefinition = null;
    if (converter == null && type.isEnum()) {
        converter = new EnumToStringConverter(type);
        columnDefinition = "VARCHAR(50)";
    }
    final Class<?> propertyType = checkPropertyType(type, converter);
    final String columnName = getColumnName(accessible, propertyName);
    if (columnDefinition == null) {
        Class<?> ddlType = getConverterType(converter);
        if (ddlType == null) {
            ddlType = propertyType;
        }
        columnDefinition = getColumnDefinition(accessible, ddlType);
    } // init:
    this.nullable = isNullable();
    this.unique = isUnique();
    this.converter = converter;
    this.propertyType = propertyType;
    this.propertyName = propertyName;
    this.columnName = columnName;
    this.columnDefinition = columnDefinition;
    this.getter = getter;
    this.convertGetter = (bean) -> {
        Object value = getter.get(bean);
        if (value != null && this.converter != null) {
            value = this.converter.convertToDatabaseColumn(value);
        }
        return value;
    };
    this.setter = setter;
    this.convertSetter = (bean, value) -> {
        if (value != null && this.converter != null) {
            value = this.converter.convertToEntityAttribute(value);
        }
        setter.set(bean, value);
    };
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号