Class FlyweightClonedItem<V extends PrismValue,D extends ItemDefinition<?>>

java.lang.Object
com.evolveum.midpoint.prism.lazy.FlyweightClonedItem<V,D>
Type Parameters:
V -
D -
All Implemented Interfaces:
ComplexCopyable<Item<V,D>>, ItemDelegator<V,D>, Freezable, Item<V,D>, Itemable, ParentVisitable, PathVisitable, PrismVisitable, Revivable, Visitable, DebugDumpable, Serializable, Cloneable

public abstract class FlyweightClonedItem<V extends PrismValue,D extends ItemDefinition<?>> extends Object implements ItemDelegator<V,D>
Flyweight immutable item backed by delegate. Flyweight immutable item is special implementation of item, which is semantically clone of another item, almost fully immutable, but allows this clone to be used in different place (setParent is mutable - eg. deltas) without need to do deep clone of all children. When value is accessed a temporary flyweight clone with proper PrismValue.getParent() is created. This lightweight clones are not cached and are created each time to simplify state tracking and to prevent creation of full clone.
See Also: