@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);
};
}
AccessibleProperty.java 文件源码
java
阅读 33
收藏 0
点赞 0
评论 0
项目:warpdb
作者:
评论列表
文章目录