org.hibernate.type.descriptor.java
Class MutableMutabilityPlan<T>

java.lang.Object
  extended by org.hibernate.type.descriptor.java.MutableMutabilityPlan<T>
All Implemented Interfaces:
Serializable, MutabilityPlan<T>
Direct Known Subclasses:
ArrayMutabilityPlan, CalendarTypeDescriptor.CalendarMutabilityPlan, DateTypeDescriptor.DateMutabilityPlan, JdbcDateTypeDescriptor.DateMutabilityPlan, JdbcTimestampTypeDescriptor.TimestampMutabilityPlan, JdbcTimeTypeDescriptor.TimeMutabilityPlan, SerializableTypeDescriptor.SerializableMutabilityPlan

public abstract class MutableMutabilityPlan<T>
extends Object
implements MutabilityPlan<T>

Mutability plan for mutable objects

Author:
Steve Ebersole
See Also:
Serialized Form

Constructor Summary
MutableMutabilityPlan()
           
 
Method Summary
 T assemble(Serializable cached)
          Assemble a previously disassembled value.
 T deepCopy(T value)
          Return a deep copy of the value.
protected abstract  T deepCopyNotNull(T value)
           
 Serializable disassemble(T value)
          Return a "disassembled" representation of the value.
 boolean isMutable()
          Can the internal state of instances of T be changed?
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MutableMutabilityPlan

public MutableMutabilityPlan()
Method Detail

isMutable

public boolean isMutable()
Can the internal state of instances of T be changed?

Specified by:
isMutable in interface MutabilityPlan<T>
Returns:
True if the internal state can be changed; false otherwise.

disassemble

public Serializable disassemble(T value)
Return a "disassembled" representation of the value. This is used to push values onto the second level cache. Compliment to MutabilityPlan.assemble(java.io.Serializable)

Specified by:
disassemble in interface MutabilityPlan<T>
Parameters:
value - The value to disassemble
Returns:
The disassembled value.
See Also:
MutabilityPlan.assemble(java.io.Serializable)

assemble

public T assemble(Serializable cached)
Assemble a previously disassembled value. This is used when pulling values from the second level cache. Compliment to MutabilityPlan.disassemble(T)

Specified by:
assemble in interface MutabilityPlan<T>
Parameters:
cached - The disassembled state
Returns:
The re-assembled value.
See Also:
MutabilityPlan.disassemble(T)

deepCopy

public final T deepCopy(T value)
Description copied from interface: MutabilityPlan
Return a deep copy of the value.

Specified by:
deepCopy in interface MutabilityPlan<T>
Parameters:
value - The value to deep copy
Returns:
The deep copy.

deepCopyNotNull

protected abstract T deepCopyNotNull(T value)


Copyright © 2001-2010 Red Hat, Inc. All Rights Reserved.