AttributeConverterDefinition.java 文件源码

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

项目:lams 作者:
public AttributeConverterDefinition(AttributeConverter attributeConverter, boolean autoApply) {
    this.attributeConverter = attributeConverter;
    this.autoApply = autoApply;

    final Class attributeConverterClass = attributeConverter.getClass();
    final ParameterizedType attributeConverterSignature = extractAttributeConverterParameterizedType( attributeConverterClass );

    if ( attributeConverterSignature.getActualTypeArguments().length < 2 ) {
        throw new AnnotationException(
                "AttributeConverter [" + attributeConverterClass.getName()
                        + "] did not retain parameterized type information"
        );
    }

    if ( attributeConverterSignature.getActualTypeArguments().length > 2 ) {
        throw new AnnotationException(
                "AttributeConverter [" + attributeConverterClass.getName()
                        + "] specified more than 2 parameterized types"
        );
    }
    entityAttributeType = (Class) attributeConverterSignature.getActualTypeArguments()[0];
    if ( entityAttributeType == null ) {
        throw new AnnotationException(
                "Could not determine 'entity attribute' type from given AttributeConverter [" +
                        attributeConverterClass.getName() + "]"
        );
    }

    databaseColumnType = (Class) attributeConverterSignature.getActualTypeArguments()[1];
    if ( databaseColumnType == null ) {
        throw new AnnotationException(
                "Could not determine 'database column' type from given AttributeConverter [" +
                        attributeConverterClass.getName() + "]"
        );
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号