HHH-7777 - Deprecate XmlRepresentableType
(cherry picked from commit 5ef8a667ff
)
This commit is contained in:
parent
83e122773d
commit
26a42cb365
|
@ -54,7 +54,10 @@ import org.hibernate.usertype.UserVersionType;
|
||||||
* @author Gavin King
|
* @author Gavin King
|
||||||
* @author Steve Ebersole
|
* @author Steve Ebersole
|
||||||
*/
|
*/
|
||||||
public class CustomType extends AbstractType implements IdentifierType, DiscriminatorType, VersionType, BasicType {
|
public class CustomType
|
||||||
|
extends AbstractType
|
||||||
|
implements IdentifierType, DiscriminatorType, VersionType, BasicType, StringRepresentableType {
|
||||||
|
|
||||||
private final UserType userType;
|
private final UserType userType;
|
||||||
private final String name;
|
private final String name;
|
||||||
private final int[] types;
|
private final int[] types;
|
||||||
|
@ -146,7 +149,7 @@ public class CustomType extends AbstractType implements IdentifierType, Discrimi
|
||||||
SessionImplementor session,
|
SessionImplementor session,
|
||||||
Object owner,
|
Object owner,
|
||||||
Map copyCache) throws HibernateException {
|
Map copyCache) throws HibernateException {
|
||||||
return userType.replace(original, target, owner);
|
return userType.replace( original, target, owner );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void nullSafeSet(PreparedStatement st, Object value, int index, boolean[] settable, SessionImplementor session)
|
public void nullSafeSet(PreparedStatement st, Object value, int index, boolean[] settable, SessionImplementor session)
|
||||||
|
@ -163,20 +166,12 @@ public class CustomType extends AbstractType implements IdentifierType, Discrimi
|
||||||
|
|
||||||
@SuppressWarnings({ "UnusedDeclaration" })
|
@SuppressWarnings({ "UnusedDeclaration" })
|
||||||
public String toXMLString(Object value, SessionFactoryImplementor factory) {
|
public String toXMLString(Object value, SessionFactoryImplementor factory) {
|
||||||
if ( value == null ) {
|
return toString( value );
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if ( userType instanceof EnhancedUserType ) {
|
|
||||||
return ( (EnhancedUserType) userType ).toXMLString( value );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return value.toString();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings({ "UnusedDeclaration" })
|
@SuppressWarnings({ "UnusedDeclaration" })
|
||||||
public Object fromXMLString(String xml, Mapping factory) {
|
public Object fromXMLString(String xml, Mapping factory) {
|
||||||
return ( (EnhancedUserType) userType ).fromXMLString(xml);
|
return fromStringValue( xml );
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
|
@ -193,7 +188,7 @@ public class CustomType extends AbstractType implements IdentifierType, Discrimi
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object stringToObject(String xml) {
|
public Object stringToObject(String xml) {
|
||||||
return ( (EnhancedUserType) userType ).fromXMLString(xml);
|
return fromStringValue( xml );
|
||||||
}
|
}
|
||||||
|
|
||||||
public String objectToSQLString(Object value, Dialect dialect) throws Exception {
|
public String objectToSQLString(Object value, Dialect dialect) throws Exception {
|
||||||
|
@ -246,4 +241,39 @@ public class CustomType extends AbstractType implements IdentifierType, Discrimi
|
||||||
throws HibernateException {
|
throws HibernateException {
|
||||||
return checkable[0] && isDirty(old, current, session);
|
return checkable[0] && isDirty(old, current, session);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public String toString(Object value) throws HibernateException {
|
||||||
|
if ( StringRepresentableType.class.isInstance( userType ) ) {
|
||||||
|
return ( (StringRepresentableType) userType ).toString( value );
|
||||||
|
}
|
||||||
|
if ( value == null ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if ( EnhancedUserType.class.isInstance( userType ) ) {
|
||||||
|
//noinspection deprecation
|
||||||
|
return ( (EnhancedUserType) userType ).toXMLString( value );
|
||||||
|
}
|
||||||
|
return value.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object fromStringValue(String string) throws HibernateException {
|
||||||
|
if ( StringRepresentableType.class.isInstance( userType ) ) {
|
||||||
|
return ( (StringRepresentableType) userType ).fromStringValue( string );
|
||||||
|
}
|
||||||
|
if ( EnhancedUserType.class.isInstance( userType ) ) {
|
||||||
|
//noinspection deprecation
|
||||||
|
return ( (EnhancedUserType) userType ).fromXMLString( string );
|
||||||
|
}
|
||||||
|
throw new HibernateException(
|
||||||
|
String.format(
|
||||||
|
"Could not process #fromStringValue, UserType class [%s] did not implement %s or %s",
|
||||||
|
name,
|
||||||
|
StringRepresentableType.class.getName(),
|
||||||
|
EnhancedUserType.class.getName()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
/*
|
/*
|
||||||
* Hibernate, Relational Persistence for Idiomatic Java
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
*
|
*
|
||||||
* Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
|
* Copyright (c) 2008, 2012, Red Hat Inc. or third-party contributors as
|
||||||
* indicated by the @author tags or express copyright attribution
|
* indicated by the @author tags or express copyright attribution
|
||||||
* statements applied by the authors. All third-party contributions are
|
* statements applied by the authors. All third-party contributions are
|
||||||
* distributed under license by Red Hat Middleware LLC.
|
* distributed under license by Red Hat Inc.
|
||||||
*
|
*
|
||||||
* This copyrighted material is made available to anyone wishing to use, modify,
|
* This copyrighted material is made available to anyone wishing to use, modify,
|
||||||
* copy, or redistribute it subject to the terms and conditions of the GNU
|
* copy, or redistribute it subject to the terms and conditions of the GNU
|
||||||
|
@ -20,15 +20,11 @@
|
||||||
* Free Software Foundation, Inc.
|
* Free Software Foundation, Inc.
|
||||||
* 51 Franklin Street, Fifth Floor
|
* 51 Franklin Street, Fifth Floor
|
||||||
* Boston, MA 02110-1301 USA
|
* Boston, MA 02110-1301 USA
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
package org.hibernate.usertype;
|
package org.hibernate.usertype;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A custom type that may function as an identifier or
|
* A custom type that may function as an identifier or discriminator type
|
||||||
* discriminator type, or may be marshalled to and from
|
|
||||||
* an XML document
|
|
||||||
*
|
*
|
||||||
* @author Gavin King
|
* @author Gavin King
|
||||||
*/
|
*/
|
||||||
|
@ -39,13 +35,21 @@ public interface EnhancedUserType extends UserType {
|
||||||
public String objectToSQLString(Object value);
|
public String objectToSQLString(Object value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a string representation of this value, as it
|
* Return a string representation of this value, as it should appear in an XML document
|
||||||
* should appear in an XML document
|
*
|
||||||
|
* @deprecated To be removed in 5. Implement {@link org.hibernate.type.StringRepresentableType#toString(Object)}
|
||||||
|
* instead. See <a href="https://hibernate.onjira.com/browse/HHH-7776">HHH-7776</a> for details
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public String toXMLString(Object value);
|
public String toXMLString(Object value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse a string representation of this value, as it
|
* Parse a string representation of this value, as it appears in an XML document
|
||||||
* appears in an XML document
|
*
|
||||||
|
* @deprecated To be removed in 5. Implement
|
||||||
|
* {@link org.hibernate.type.StringRepresentableType#fromStringValue(String)} instead.
|
||||||
|
* See <a href="https://hibernate.onjira.com/browse/HHH-7776">HHH-7776</a> for details
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public Object fromXMLString(String xmlValue);
|
public Object fromXMLString(String xmlValue);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue