[hibernate-commits] Hibernate SVN: r19483 - core/trunk/core/src/main/java/org/hibernate/type/descriptor/java.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Wed May 12 15:48:44 EDT 2010
Author: steve.ebersole at jboss.com
Date: 2010-05-12 15:48:43 -0400 (Wed, 12 May 2010)
New Revision: 19483
Modified:
core/trunk/core/src/main/java/org/hibernate/type/descriptor/java/SerializableTypeDescriptor.java
Log:
HHH-5138 - Redesign types + introduce TypeRegistry & TypeResolver
Modified: core/trunk/core/src/main/java/org/hibernate/type/descriptor/java/SerializableTypeDescriptor.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/type/descriptor/java/SerializableTypeDescriptor.java 2010-05-12 19:12:12 UTC (rev 19482)
+++ core/trunk/core/src/main/java/org/hibernate/type/descriptor/java/SerializableTypeDescriptor.java 2010-05-12 19:48:43 UTC (rev 19483)
@@ -37,18 +37,33 @@
* @author Steve Ebersole
*/
public class SerializableTypeDescriptor<T extends Serializable> extends AbstractTypeDescriptor<T> {
+
// unfortunately the param types cannot be the same so use something other than 'T' here to make that obvious
public static class SerializableMutabilityPlan<S extends Serializable> extends MutableMutabilityPlan<S> {
- public static final SerializableMutabilityPlan INSTANCE = new SerializableMutabilityPlan();
+ private final Class<S> type;
+
+ public static final SerializableMutabilityPlan<Serializable> INSTANCE
+ = new SerializableMutabilityPlan<Serializable>( Serializable.class );
+
+ public SerializableMutabilityPlan(Class<S> type) {
+ this.type = type;
+ }
+
@SuppressWarnings({ "unchecked" })
public S deepCopyNotNull(S value) {
return (S) SerializationHelper.clone( value );
}
+
}
@SuppressWarnings({ "unchecked" })
public SerializableTypeDescriptor(Class<T> type) {
- super( type, SerializableMutabilityPlan.INSTANCE );
+ super(
+ type,
+ Serializable.class.equals( type )
+ ? (MutabilityPlan<T>) SerializableMutabilityPlan.INSTANCE
+ : new SerializableMutabilityPlan<T>( type )
+ );
}
public String toString(T value) {
More information about the hibernate-commits
mailing list