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

    java.lang.Object
      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

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-2012 Red Hat, Inc. All Rights Reserved.