Java 类javax.persistence.Convert 实例源码

项目:lams    文件:JPAOverriddenAnnotationReader.java   
private Converts getConverts(Element tree, XMLContext.Default defaults) {
    // NOTE : we use a map here to make sure that an xml and annotation referring to the same attribute
    // properly overrides.  Bit sparse, but easy...
    final Map<String,Convert> convertAnnotationsMap = new HashMap<String, Convert>();

    if ( tree != null ) {
        applyXmlDefinedConverts( tree, defaults, null, convertAnnotationsMap );
    }

    // NOTE : per section 12.2.3.16 of the spec <convert/> is additive, although only if "metadata-complete" is not
    // specified in the XML

    if ( defaults.canUseJavaAnnotations() ) {
        applyPhysicalConvertAnnotations( null, convertAnnotationsMap );
    }

    if ( !convertAnnotationsMap.isEmpty() ) {
        final AnnotationDescriptor groupingDescriptor = new AnnotationDescriptor( Converts.class );
        groupingDescriptor.setValue( "value", convertAnnotationsMap.values().toArray( new Convert[convertAnnotationsMap.size()]) );
        return AnnotationFactory.create( groupingDescriptor );
    }

    return null;
}
项目:warpdb    文件:AccessibleProperty.java   
@SuppressWarnings("unchecked")
private AttributeConverter<Object, Object> getConverter(AccessibleObject accessible) {
    Convert converter = accessible.getAnnotation(Convert.class);
    if (converter != null) {
        Class<?> converterClass = converter.converter();
        if (!AttributeConverter.class.isAssignableFrom(converterClass)) {
            throw new RuntimeException(
                    "Converter class must be AttributeConverter rather than " + converterClass.getName());
        }
        try {
            Constructor<?> cs = converterClass.getDeclaredConstructor();
            cs.setAccessible(true);
            return (AttributeConverter<Object, Object>) cs.newInstance();
        } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | SecurityException
                | InvocationTargetException e) {
            throw new RuntimeException("Cannot instantiate Converter: " + converterClass.getName(), e);
        }
    }
    return null;
}
项目:lams    文件:AttributeConversionInfo.java   
@SuppressWarnings("unchecked")
public AttributeConversionInfo(Convert convertAnnotation, XAnnotatedElement xAnnotatedElement) {
    this(
            convertAnnotation.converter(),
            convertAnnotation.disableConversion(),
            convertAnnotation.attributeName(),
            xAnnotatedElement
    );
}
项目:lams    文件:JPAOverriddenAnnotationReader.java   
private Annotation getConvertsForAttribute(List<Element> elementsForProperty, XMLContext.Default defaults) {
    // NOTE : we use a map here to make sure that an xml and annotation referring to the same attribute
    // properly overrides.  Very sparse map, yes, but easy setup.
    // todo : revisit this
    // although bear in mind that this code is no longer used in 5.0...

    final Map<String,Convert> convertAnnotationsMap = new HashMap<String, Convert>();

    for ( Element element : elementsForProperty ) {
        final boolean isBasic = "basic".equals( element.getName() );
        final boolean isEmbedded = "embedded".equals( element.getName() );

        // todo : can be collections too

        final boolean canHaveConverts = isBasic || isEmbedded;

        if ( !canHaveConverts ) {
            continue;
        }

        final String attributeNamePrefix = isBasic ? null : propertyName;
        applyXmlDefinedConverts( element, defaults, attributeNamePrefix, convertAnnotationsMap );
    }

    // NOTE : per section 12.2.3.16 of the spec <convert/> is additive, although only if "metadata-complete" is not
    // specified in the XML

    if ( defaults.canUseJavaAnnotations() ) {
        // todo : note sure how to best handle attributeNamePrefix here
        applyPhysicalConvertAnnotations( propertyName, convertAnnotationsMap );
    }

    if ( !convertAnnotationsMap.isEmpty() ) {
        final AnnotationDescriptor groupingDescriptor = new AnnotationDescriptor( Converts.class );
        groupingDescriptor.setValue( "value", convertAnnotationsMap.values().toArray( new Convert[convertAnnotationsMap.size()]) );
        return AnnotationFactory.create( groupingDescriptor );
    }

    return null;
}
项目:lams    文件:JPAOverriddenAnnotationReader.java   
private void applyXmlDefinedConverts(
        Element containingElement,
        XMLContext.Default defaults,
        String attributeNamePrefix,
        Map<String,Convert> convertAnnotationsMap) {
    final List<Element> convertElements = containingElement.elements( "convert" );
    for ( Element convertElement : convertElements ) {
        final AnnotationDescriptor convertAnnotationDescriptor = new AnnotationDescriptor( Convert.class );
        copyStringAttribute( convertAnnotationDescriptor, convertElement, "attribute-name", false );
        copyBooleanAttribute( convertAnnotationDescriptor, convertElement, "disable-conversion" );

        final Attribute converterClassAttr = convertElement.attribute( "converter" );
        if ( converterClassAttr != null ) {
            final String converterClassName = XMLContext.buildSafeClassName(
                    converterClassAttr.getValue(),
                    defaults
            );
            try {
                final Class converterClass = ReflectHelper.classForName( converterClassName, this.getClass() );
                convertAnnotationDescriptor.setValue( "converter", converterClass );
            }
            catch (ClassNotFoundException e) {
                throw new AnnotationException( "Unable to find specified converter class id-class: " + converterClassName, e );
            }
        }
        final Convert convertAnnotation = AnnotationFactory.create( convertAnnotationDescriptor );
        final String qualifiedAttributeName = qualifyConverterAttributeName(
                attributeNamePrefix,
                convertAnnotation.attributeName()
        );
        convertAnnotationsMap.put( qualifiedAttributeName, convertAnnotation );
    }

}
项目:opencucina    文件:PersistableSearch.java   
/**
 * Get searchBean
 * @return searchBean SearchBean.
 */
@Lob
@Column(name = "MARSHALLED_SEARCH")
@Convert(converter = SearchBeanConverter.class)
public SearchBean getSearchBean() {
    return searchBean;
}
项目:opencucina    文件:ListItem.java   
/**
 * JAVADOC Method Level Comments
 *
 * @return JAVADOC.
 */

//    @Lob
@Convert(converter = JsonMapConverter.class)
public Map<String, Object> getAttributes() {
    return attributes;
}
项目:opencucina    文件:ListItem.java   
/**
 * Gets the defaultValue flag on the object
 * @return Returns the defaultValue.
 */
@Convert(converter = BooleanConverter.class)
@Column(columnDefinition = "CHAR(1) not null")
@ProjectionColumn
public Boolean getDefaultValue() {
    return defaultValue;
}
项目:opencucina    文件:ListItem.java   
/**
 * @return Returns the retired.
 */
@ProjectionColumn
@Convert(converter = BooleanConverter.class)
@Column(columnDefinition = "CHAR(1) not null")
public Boolean getRetired() {
    return retired;
}
项目:lams    文件:CollectionPropertyHolder.java   
private void applyLocalConvert(
        Convert convertAnnotation,
        XProperty collectionProperty,
        Map<String,AttributeConversionInfo> elementAttributeConversionInfoMap,
        Map<String,AttributeConversionInfo> keyAttributeConversionInfoMap) {

    // IMPL NOTE : the rules here are quite more lenient than what JPA says.  For example, JPA says
    // that @Convert on a Map always needs to specify attributeName of key/value (or prefixed with
    // key./value. for embedded paths).  However, we try to see if conversion of either is disabled
    // for whatever reason.  For example, if the Map is annotated with @Enumerated the elements cannot
    // be converted so any @Convert likely meant the key, so we apply it to the key

    final AttributeConversionInfo info = new AttributeConversionInfo( convertAnnotation, collectionProperty );
    if ( collection.isMap() ) {
        boolean specCompliant = StringHelper.isNotEmpty( info.getAttributeName() )
                && ( info.getAttributeName().startsWith( "key" )
                || info.getAttributeName().startsWith( "value" ) );
        if ( !specCompliant ) {
            log.nonCompliantMapConversion( collection.getRole() );
        }
    }

    if ( StringHelper.isEmpty( info.getAttributeName() ) ) {
        if ( canElementBeConverted && canKeyBeConverted ) {
            throw new IllegalStateException(
                    "@Convert placed on Map attribute [" + collection.getRole()
                            + "] must define attributeName of 'key' or 'value'"
            );
        }
        else if ( canKeyBeConverted ) {
            keyAttributeConversionInfoMap.put( "", info );
        }
        else if ( canElementBeConverted ) {
            elementAttributeConversionInfoMap.put( "", info );
        }
        // if neither, we should not be here...
    }
    else {
        if ( canElementBeConverted && canKeyBeConverted ) {
            // specified attributeName needs to have 'key.' or 'value.' prefix
            if ( info.getAttributeName().startsWith( "key." ) ) {
                keyAttributeConversionInfoMap.put(
                        info.getAttributeName().substring( 4 ),
                        info
                );
            }
            else if ( info.getAttributeName().startsWith( "value." ) ) {
                elementAttributeConversionInfoMap.put(
                        info.getAttributeName().substring( 6 ),
                        info
                );
            }
            else {
                throw new IllegalStateException(
                        "@Convert placed on Map attribute [" + collection.getRole()
                                + "] must define attributeName of 'key' or 'value'"
                );
            }
        }
    }
}
项目:mycore    文件:MCRJob.java   
/**
 * Returns the action class ({@link MCRJobAction}).
 * 
 * @return the action class
 */
@Column(name = "action", nullable = false)
@Convert(converter = MCRJobActionConverter.class)
public Class<? extends MCRJobAction> getAction() {
    return action;
}
项目:mycore    文件:MCRCategoryImpl.java   
@Override
@Column
@Convert(converter = MCRURIConverter.class)
public URI getURI() {
    return super.getURI();
}
项目:celerio-angular-quickstart    文件:User.java   
@Column(name = "COUNTRY_CODE", length = 6)
@Convert(converter = CountryCodeConverter.class)
public CountryCode getCountryCode() {
    return countryCode;
}
项目:opencucina    文件:ClusterControl.java   
/**
 * JAVADOC Method Level Comments
 *
 * @return JAVADOC.
 */
@Convert(converter = BooleanConverter.class)
@Column(columnDefinition = "CHAR(1) not null")
public boolean isComplete() {
    return complete;
}
项目:opencucina    文件:ClusterControl.java   
/**
 * JAVADOC Method Level Comments
 *
 * @return JAVADOC.
 */
@Column(length = 1000)
@Convert(converter = JsonMapConverter.class)
public Map<Object, Object> getProperties() {
    return properties;
}
项目:opencucina    文件:PersistableSearch.java   
/**
 * Get is public search
 *
 * @return isPublic.
 */
@Convert(converter = BooleanConverter.class)
@Column(name = "IS_PUBLIC", columnDefinition = "CHAR(1) not null")
public boolean isPublic() {
    return isPublic;
}
项目:pedal-dialect    文件:CopyAttribute.java   
public boolean isJpaConverter() {
    return getEntityMethod().isAnnotationPresent(Convert.class);
}
项目:pedal-dialect    文件:CopyAttribute.java   
public Class<? extends Converter> getJpaConverterClass() {
    return getEntityMethod().getAnnotation(Convert.class).converter();
}
项目:pedal-dialect    文件:ExoticTypes.java   
@Column(name = "status", nullable = false, length = 2)
@Convert(converter = StatusConverter.class)
public Status getStatus() {
    return status;
}
项目:pedal-dialect    文件:ExoticTypes.java   
@Column(name = "color")
@Convert(converter = ColorConverter.class)
public Color getColor() {
    return color;
}
项目:blaze-storage    文件:Storage.java   
@NotNull
@Convert(converter = URIConverter.class)
public URI getUri() {
    return uri;
}
项目:pedal-loader    文件:ExoticTypes.java   
@Column(name = "status", nullable = false, length = 2)
@Convert(converter = StatusConverter.class)
public Status getStatus() {
    return status;
}
项目:pedal-dialect    文件:CopyAttribute.java   
public boolean isJpaConverter() {
    return getEntityMethod().isAnnotationPresent(Convert.class);
}
项目:pedal-dialect    文件:CopyAttribute.java   
public Class<? extends Converter> getJpaConverterClass() {
    return getEntityMethod().getAnnotation(Convert.class).converter();
}
项目:pedal-dialect    文件:ExoticTypes.java   
@Column(name = "status", nullable = false, length = 2)
@Convert(converter = StatusConverter.class)
public Status getStatus() {
    return status;
}
项目:pedal-dialect    文件:ExoticTypes.java   
@Column(name = "color")
@Convert(converter = ColorConverter.class)
public Color getColor() {
    return color;
}
项目:pedal-loader    文件:ExoticTypes.java   
@Column(name = "status", nullable = false, length = 2)
@Convert(converter = StatusConverter.class)
public Status getStatus() {
    return status;
}
项目:pedal-tx    文件:Embedee.java   
@Column(name = "name", nullable = false, length = 100)
@Convert(converter = NameConverter.class)
public Name getName() {
    return name;
}
项目:pedal-tx    文件:Student.java   
@Column(name = "do-not-use", nullable = true, length = 1)
@Convert(converter = GradeConverter.class)
public Grade getGrade() {
    return grade;
}
项目:log4j2    文件:TestBaseEntity.java   
@Override
@Convert(converter = MessageAttributeConverter.class)
@Column(name = "message")
public Message getMessage() {
    return this.getWrappedEvent().getMessage();
}
项目:log4j2    文件:TestBaseEntity.java   
@Override
@Convert(converter = ThrowableAttributeConverter.class)
@Column(name = "exception")
public Throwable getThrown() {
    return this.getWrappedEvent().getThrown();
}
项目:log4j2    文件:TestBasicEntity.java   
@Override
@Convert(converter = ContextMapJsonAttributeConverter.class)
@Column(name = "contextMapJson")
public Map<String, String> getContextMap() {
    return super.getContextMap();
}
项目:logging-log4j2    文件:TestBasicEntity.java   
@Override
@Convert(converter = ContextMapJsonAttributeConverter.class)
@Column(name = "contextMapJson")
public Map<String, String> getContextMap() {
    return super.getContextMap();
}
项目:logging-log4j2    文件:BasicLogEventEntity.java   
/**
 * Gets the level. Annotated with {@code @Basic} and {@code @Enumerated(EnumType.STRING)}.
 *
 * @return the level.
 */
@Override
@Convert(converter = LevelAttributeConverter.class)
public Level getLevel() {
    return this.getWrappedEvent().getLevel();
}
项目:logging-log4j2    文件:BasicLogEventEntity.java   
@Override
@Convert(converter = InstantAttributeConverter.class)
public Instant getInstant() {
    return this.getWrappedEvent().getInstant();
}
项目:logging-log4j2    文件:TestBaseEntity.java   
@Override
@Convert(converter = LevelAttributeConverter.class)
@Column(name = "level")
public Level getLevel() {
    return this.getWrappedEvent().getLevel();
}
项目:logging-log4j2    文件:TestBaseEntity.java   
@Override
@Convert(converter = MessageAttributeConverter.class)
@Column(name = "message")
public Message getMessage() {
    return this.getWrappedEvent().getMessage();
}
项目:logging-log4j2    文件:TestBaseEntity.java   
@Override
@Convert(converter = InstantAttributeConverter.class)
@Column(name = "instant")
public Instant getInstant() {
    return this.getWrappedEvent().getInstant();
}
项目:logging-log4j2    文件:TestBaseEntity.java   
@Override
@Convert(converter = ThrowableAttributeConverter.class)
@Column(name = "exception")
public Throwable getThrown() {
    return this.getWrappedEvent().getThrown();
}
项目:logging-log4j2    文件:TestBasicEntity.java   
@Override
@Convert(converter = ContextMapJsonAttributeConverter.class)
@Column(name = "contextMapJson")
public Map<String, String> getContextMap() {
    return super.getContextMap();
}