Class SmartAssignmentCollection<F extends AssignmentHolderType>
- java.lang.Object
-
- com.evolveum.midpoint.model.impl.lens.projector.SmartAssignmentCollection<F>
-
- All Implemented Interfaces:
DebugDumpable
,Iterable<SmartAssignmentElement>
public class SmartAssignmentCollection<F extends AssignmentHolderType> extends Object implements Iterable<SmartAssignmentElement>, DebugDumpable
Smart set of assignment values that keep track whether the assignment is new, old or changed. This information is used for various reasons. We specifically distinguish between assignments in objectCurrent and objectOld to be able to reliably detect phantom adds: a phantom add is an assignment that is both in OLD and CURRENT objects. This is important in waves greater than 0, where objectCurrent is already updated with existing assignments. (See MID-2422.) Each assignment is present here only once. For example, if it's present in old and current object, and also referenced by a delta, it is still here represented only as a single entry.- Author:
- Radovan Semancik
-
-
Field Summary
-
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
-
Constructor Summary
Constructors Constructor Description SmartAssignmentCollection()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
collectAndFreeze(PrismObject<F> objectCurrent, PrismObject<F> objectOld, ContainerDelta<AssignmentType> currentAssignmentDelta, Collection<AssignmentType> virtualAssignments, PrismContext prismContext)
Fills-in this collection from given sources and freezes origins afterwards.String
debugDump(int indent)
@NotNull Iterator<SmartAssignmentElement>
iterator()
String
toString()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDumpLazily, debugDumpLazily
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Method Detail
-
collectAndFreeze
public void collectAndFreeze(PrismObject<F> objectCurrent, PrismObject<F> objectOld, ContainerDelta<AssignmentType> currentAssignmentDelta, Collection<AssignmentType> virtualAssignments, PrismContext prismContext) throws SchemaException
Fills-in this collection from given sources and freezes origins afterwards. Origin freeze is needed if "replace" delta is present, because we have to set final values for "isNew" origin flags.- Throws:
SchemaException
-
iterator
@NotNull public @NotNull Iterator<SmartAssignmentElement> iterator()
- Specified by:
iterator
in interfaceIterable<F extends AssignmentHolderType>
-
debugDump
public String debugDump(int indent)
- Specified by:
debugDump
in interfaceDebugDumpable
-
-