Class ContainerDeltaImpl<V extends Containerable>
- java.lang.Object
-
- com.evolveum.midpoint.prism.AbstractFreezable
-
- com.evolveum.midpoint.prism.impl.delta.ItemDeltaImpl<PrismContainerValue<V>,PrismContainerDefinition<V>>
-
- com.evolveum.midpoint.prism.impl.delta.ContainerDeltaImpl<V>
-
- All Implemented Interfaces:
ContainerDelta<V>
,ItemDelta<PrismContainerValue<V>,PrismContainerDefinition<V>>
,Freezable
,Itemable
,ParentVisitable
,PathVisitable
,PrismContainerable<V>
,PrismContextSensitive
,Visitable
,DebugDumpable
,Foreachable<PrismContainerValue<V>>
,Serializable
public class ContainerDeltaImpl<V extends Containerable> extends ItemDeltaImpl<PrismContainerValue<V>,PrismContainerDefinition<V>> implements ContainerDelta<V>
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class com.evolveum.midpoint.prism.impl.delta.ItemDeltaImpl
definition, elementName, parentPath, valuesToAdd, valuesToDelete, valuesToReplace
-
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
-
Constructor Summary
Constructors Constructor Description ContainerDeltaImpl(ItemPath propertyPath, PrismContainerDefinition itemDefinition, PrismContext prismContext)
ContainerDeltaImpl(ItemPath parentPath, QName name, PrismContainerDefinition itemDefinition, PrismContext prismContext)
ContainerDeltaImpl(PrismContainerDefinition itemDefinition, PrismContext prismContext)
-
Method Summary
-
Methods inherited from class com.evolveum.midpoint.prism.impl.delta.ItemDeltaImpl
accept, accept, accept, addEstimatedOldValue, addEstimatedOldValues, addEstimatedOldValues, addsAnyValue, addToReplaceDelta, addValuesToAdd, addValuesToAdd, addValuesToDelete, addValuesToDelete, addValueToAdd, addValueToDelete, addValueToReplace, applyDefinition, applyTo, applyTo, applyToMatchingPath, assertDefinitions, assertDefinitions, checkConsistence, checkConsistence, clear, clearValuesToAdd, clearValuesToDelete, clearValuesToReplace, cloneWithChangedParentPath, contains, contains, copyValues, createReverseDelta, debugDump, distributeReplace, equals, equivalent, filterValues, filterYields, findValueToAddOrReplace, foreach, getAnyValue, getDefinition, getElementName, getEstimatedOldValues, getItemNew, getItemNew, getItemNewMatchingPath, getParentPath, getPath, getPrismContext, getValueChanges, getValuesToAdd, getValuesToDelete, getValuesToReplace, hasAnyRawValue, hashCode, isAdd, isApplicableTo, isDelete, isEmpty, isLiterallyEmpty, isRaw, isRedundant, isReplace, isValueToAdd, isValueToDelete, isValueToReplace, merge, mergeValuesToAdd, mergeValuesToAdd, mergeValuesToDelete, mergeValuesToDelete, mergeValuesToReplace, mergeValuesToReplace, mergeValueToAdd, mergeValueToDelete, mergeValueToReplace, narrow, normalize, removeValueToAdd, removeValueToDelete, removeValueToReplace, resetValuesToAdd, resetValuesToDelete, resetValuesToReplace, revive, setElementName, setEstimatedOldValues, setOriginTypeRecursive, setParentPath, setValuesToReplace, setValuesToReplace, setValueToReplace, setValueToReplace, simplify, size, toDeltaSetTriple, toString, validate, validate, validateValues, validateValues
-
Methods inherited from class com.evolveum.midpoint.prism.AbstractFreezable
freeze, freeze, freezeAll, freezeNullableList, isImmutable, isMutable, performFreeze
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDumpLazily, debugDumpLazily
-
Methods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable, freeze
-
Methods inherited from interface com.evolveum.midpoint.prism.delta.ItemDelta
accept, accept, accept, addEstimatedOldValue, addEstimatedOldValues, addEstimatedOldValues, addsAnyValue, addToReplaceDelta, addValuesToAdd, addValuesToAdd, addValuesToDelete, addValuesToDelete, addValueToAdd, addValueToDelete, addValueToReplace, applyDefinition, applyTo, applyTo, applyToMatchingPath, assertDefinitions, assertDefinitions, checkConsistence, checkConsistence, clear, clearValuesToAdd, clearValuesToDelete, clearValuesToReplace, cloneWithChangedParentPath, contains, contains, createReverseDelta, debugDump, distributeReplace, equals, equivalent, filterValues, filterYields, findValueToAddOrReplace, foreach, getAnyValue, getDefinition, getElementName, getEstimatedOldValues, getItemNew, getItemNew, getItemNewMatchingPath, getParentPath, getPath, getRealValuesToAdd, getRealValuesToDelete, getRealValuesToReplace, getValueChanges, getValuesToAdd, getValuesToDelete, getValuesToReplace, isAdd, isApplicableTo, isDelete, isEmpty, isImmutable, isLiterallyEmpty, isRaw, isRedundant, isReplace, isValueToAdd, isValueToDelete, isValueToReplace, merge, mergeValuesToAdd, mergeValuesToAdd, mergeValuesToDelete, mergeValuesToDelete, mergeValuesToReplace, mergeValuesToReplace, mergeValueToAdd, mergeValueToDelete, mergeValueToReplace, narrow, normalize, removeValueToAdd, removeValueToDelete, removeValueToReplace, resetValuesToAdd, resetValuesToDelete, resetValuesToReplace, revive, setElementName, setEstimatedOldValues, setOriginTypeRecursive, setParentPath, setValuesToReplace, setValuesToReplace, setValueToReplace, setValueToReplace, simplify, size, toDeltaSetTriple, toString, validate, validate, validateValues, validateValues
-
Methods inherited from interface com.evolveum.midpoint.prism.PrismContainerable
getComplexTypeDefinition, getDefinition
-
Methods inherited from interface com.evolveum.midpoint.prism.PrismContextSensitive
getPrismContext
-
-
-
-
Constructor Detail
-
ContainerDeltaImpl
public ContainerDeltaImpl(PrismContainerDefinition itemDefinition, PrismContext prismContext)
-
ContainerDeltaImpl
public ContainerDeltaImpl(ItemPath propertyPath, PrismContainerDefinition itemDefinition, PrismContext prismContext)
-
ContainerDeltaImpl
public ContainerDeltaImpl(ItemPath parentPath, QName name, PrismContainerDefinition itemDefinition, PrismContext prismContext)
-
-
Method Detail
-
getItemClass
public Class<PrismContainer> getItemClass()
- Specified by:
getItemClass
in interfaceContainerDelta<V extends Containerable>
- Specified by:
getItemClass
in interfaceItemDelta<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
- Specified by:
getItemClass
in classItemDeltaImpl<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
-
getValues
public <T extends Containerable> Collection<PrismContainerValue<T>> getValues(Class<T> type)
Returns all values regardless of whether they are added or removed or replaced. Useful for iterating over all the changed values.- Specified by:
getValues
in interfaceContainerDelta<V extends Containerable>
-
setDefinition
public void setDefinition(PrismContainerDefinition<V> definition)
- Specified by:
setDefinition
in interfaceContainerDelta<V extends Containerable>
- Specified by:
setDefinition
in interfaceItemDelta<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
- Overrides:
setDefinition
in classItemDeltaImpl<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
-
applyDefinition
public void applyDefinition(PrismContainerDefinition<V> definition) throws SchemaException
- Specified by:
applyDefinition
in interfaceContainerDelta<V extends Containerable>
- Specified by:
applyDefinition
in interfaceItemDelta<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
- Overrides:
applyDefinition
in classItemDeltaImpl<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
- Throws:
SchemaException
-
hasCompleteDefinition
public boolean hasCompleteDefinition()
- Specified by:
hasCompleteDefinition
in interfaceContainerDelta<V extends Containerable>
- Specified by:
hasCompleteDefinition
in interfaceItemDelta<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
- Overrides:
hasCompleteDefinition
in classItemDeltaImpl<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
-
getCompileTimeClass
public Class<V> getCompileTimeClass()
- Specified by:
getCompileTimeClass
in interfaceContainerDelta<V extends Containerable>
- Specified by:
getCompileTimeClass
in interfacePrismContainerable<V extends Containerable>
-
isApplicableToType
public boolean isApplicableToType(Item item)
- Specified by:
isApplicableToType
in interfaceContainerDelta<V extends Containerable>
- Specified by:
isApplicableToType
in classItemDeltaImpl<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
-
getSubDelta
public ItemDelta<?,?> getSubDelta(ItemPath path)
- Specified by:
getSubDelta
in interfaceContainerDelta<V extends Containerable>
- Specified by:
getSubDelta
in interfaceItemDelta<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
- Overrides:
getSubDelta
in classItemDeltaImpl<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
-
expand
public <O extends Objectable> void expand(PrismObject<O> object, Trace logger) throws SchemaException
Post processing of delta to expand missing values from the object. E.g. a delete deltas may be "id-only" so they contain only id of the value to delete. In such case locate the full value in the object and fill it into the delta. This method may even delete id-only values that are no longer present in the object.- Specified by:
expand
in interfaceContainerDelta<V extends Containerable>
- Throws:
SchemaException
-
isValueEquivalent
protected boolean isValueEquivalent(PrismContainerValue<V> a, PrismContainerValue<V> b, ParameterizedEquivalenceStrategy strategy)
- Overrides:
isValueEquivalent
in classItemDeltaImpl<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
-
checkConsistence
public void checkConsistence(boolean requireDefinition, boolean prohibitRaw, ConsistencyCheckScope scope)
- Specified by:
checkConsistence
in interfaceContainerDelta<V extends Containerable>
- Specified by:
checkConsistence
in interfaceItemDelta<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
- Overrides:
checkConsistence
in classItemDeltaImpl<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
-
clone
public ContainerDeltaImpl<V> clone()
- Specified by:
clone
in interfaceContainerDelta<V extends Containerable>
- Specified by:
clone
in interfaceItemDelta<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
- Specified by:
clone
in classItemDeltaImpl<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
-
copyValues
protected void copyValues(ContainerDeltaImpl<V> clone)
-
createDelta
public static <T extends Containerable,O extends Objectable> ContainerDeltaImpl<T> createDelta(ItemPath containerPath, Class<O> type, PrismContext prismContext)
-
createDelta
public static <T extends Containerable,O extends Objectable> ContainerDeltaImpl<T> createDelta(ItemPath containerPath, PrismObjectDefinition<O> objectDefinition)
-
createDelta
public static <T extends Containerable,O extends Objectable> ContainerDeltaImpl<T> createDelta(ItemPath containerPath, PrismContainerDefinition<O> objectDefinition)
-
createModificationAdd
public static <T extends Containerable,O extends Objectable> ContainerDeltaImpl<T> createModificationAdd(ItemPath containerPath, Class<O> type, PrismContext prismContext, T containerable) throws SchemaException
- Throws:
SchemaException
-
createModificationAdd
public static <T extends Containerable,O extends Objectable> ContainerDeltaImpl<T> createModificationAdd(ItemPath containerPath, Class<O> type, PrismContext prismContext, PrismContainerValue<T> cValue) throws SchemaException
- Throws:
SchemaException
-
createModificationDelete
public static <T extends Containerable,O extends Objectable> ContainerDeltaImpl<T> createModificationDelete(ItemPath containerPath, Class<O> type, PrismContext prismContext, T containerable) throws SchemaException
- Throws:
SchemaException
-
createModificationDelete
public static <T extends Containerable,O extends Objectable> ContainerDeltaImpl<T> createModificationDelete(ItemPath containerPath, Class<O> type, PrismContext prismContext, PrismContainerValue<T> cValue) throws SchemaException
- Throws:
SchemaException
-
createModificationReplace
public static <T extends Containerable,O extends Objectable> ContainerDeltaImpl<T> createModificationReplace(ItemPath containerPath, Class<O> type, PrismContext prismContext, T containerable) throws SchemaException
- Throws:
SchemaException
-
createModificationReplace
public static <T extends Containerable,O extends Objectable> ContainerDeltaImpl<T> createModificationReplace(ItemPath containerPath, Class<O> type, PrismContext prismContext, Collection<T> containerables) throws SchemaException
- Throws:
SchemaException
-
createModificationReplace
public static <T extends Containerable,O extends Objectable> ContainerDeltaImpl<T> createModificationReplace(ItemPath containerPath, Class<O> type, PrismContext prismContext, PrismContainerValue<T> cValue) throws SchemaException
- Throws:
SchemaException
-
createModificationReplaceContainerCollection
@Deprecated public static Collection<? extends ItemDelta<?,?>> createModificationReplaceContainerCollection(ItemName containerName, PrismObjectDefinition<?> objectDefinition, PrismContainerValue... cValues)
Deprecated.
-
createModificationReplace
@Deprecated public static <T extends Containerable> ContainerDeltaImpl<T> createModificationReplace(ItemName containerName, PrismObjectDefinition<?> objectDefinition, PrismContainerValue... cValues)
Deprecated.
-
dumpValues
protected void dumpValues(StringBuilder sb, String label, Collection<PrismContainerValue<V>> values, int indent)
- Overrides:
dumpValues
in classItemDeltaImpl<PrismContainerValue<V extends Containerable>,PrismContainerDefinition<V extends Containerable>>
-
acceptParentVisitor
public void acceptParentVisitor(Visitor visitor)
- Specified by:
acceptParentVisitor
in interfaceParentVisitable
-
-