public interface ObjectDelta<O extends Objectable> extends DebugDumpable, Visitable, PathVisitable, Serializable
This class describes how the object changes. It can describe either object addition, modification of deletion.
Addition described complete new (absolute) state of the object.
Modification contains a set property deltas that describe relative changes to individual properties
Deletion does not contain anything. It only marks object for deletion.
The OID is mandatory for modification and deletion.
PropertyDelta
Modifier and Type | Interface and Description |
---|---|
static class |
ObjectDelta.FactorOutResultMulti<T extends Objectable> |
static class |
ObjectDelta.FactorOutResultSingle<T extends Objectable> |
INDENT_STRING
Modifier and Type | Method and Description |
---|---|
void |
accept(Visitor visitor,
boolean includeOldValues) |
void |
accept(Visitor visitor,
ItemPath path,
boolean recursive) |
<D extends ItemDelta> |
addModification(D itemDelta)
Adds modification (itemDelta) and returns the modification that was added.
|
<C extends Containerable> |
addModificationAddContainer(ItemPath propertyPath,
C... containerables) |
<C extends Containerable> |
addModificationAddContainer(ItemPath propertyPath,
PrismContainerValue<C>... containerValues) |
<X> void |
addModificationAddProperty(ItemPath propertyPath,
X... propertyValues) |
void |
addModificationAddReference(ItemPath path,
PrismReferenceValue... refValues) |
<C extends Containerable> |
addModificationDeleteContainer(ItemPath propertyPath,
C... containerables) |
<C extends Containerable> |
addModificationDeleteContainer(ItemPath propertyPath,
PrismContainerValue<C>... containerValues) |
<X> void |
addModificationDeleteProperty(ItemPath propertyPath,
X... propertyValues) |
void |
addModificationDeleteReference(ItemPath path,
PrismReferenceValue... refValues) |
<C extends Containerable> |
addModificationReplaceContainer(ItemPath propertyPath,
PrismContainerValue<C>... containerValues) |
<X> PropertyDelta<X> |
addModificationReplaceProperty(ItemPath propertyPath,
X... propertyValues) |
void |
addModificationReplaceReference(ItemPath path,
PrismReferenceValue... refValues) |
void |
addModifications(Collection<? extends ItemDelta> itemDeltas) |
void |
addModifications(ItemDelta<?,?>... itemDeltas) |
void |
applyDefinition(PrismObjectDefinition<O> objectDefinition,
boolean force) |
void |
applyDefinitionIfPresent(PrismObjectDefinition<O> definition,
boolean tolerateNoDefinition) |
void |
applyTo(PrismObject<O> targetObject)
Applies this object delta to specified object, returns updated object.
|
void |
applyTo(PrismObject<O> targetObject,
ParameterizedEquivalenceStrategy strategy) |
void |
assertDefinitions() |
void |
assertDefinitions(boolean tolerateRawElements) |
void |
assertDefinitions(boolean tolerateRawElements,
String sourceDescription)
Assert that all the items has appropriate definition.
|
void |
assertDefinitions(String sourceDescription) |
void |
checkConsistence() |
void |
checkConsistence(boolean requireOid,
boolean requireDefinition,
boolean prohibitRaw) |
void |
checkConsistence(boolean requireOid,
boolean requireDefinition,
boolean prohibitRaw,
ConsistencyCheckScope scope) |
void |
checkConsistence(ConsistencyCheckScope scope) |
void |
clear() |
ObjectDelta<O> |
clone()
Deep clone.
|
PrismObject<O> |
computeChangedObject(PrismObject<O> objectOld)
Applies this object delta to specified object, returns updated object.
|
boolean |
containsAllModifications(Collection<? extends ItemDelta<?,?>> itemDeltas,
EquivalenceStrategy strategy) |
boolean |
containsModification(ItemDelta itemDelta) |
boolean |
containsModification(ItemDelta itemDelta,
EquivalenceStrategy strategy) |
<C extends Containerable> |
createContainerModification(ItemPath path) |
<C extends Containerable> |
createContainerModification(ItemPath path,
PrismContainerDefinition<C> containerDefinition) |
<X> PropertyDelta<X> |
createPropertyModification(ItemPath path) |
<C> PropertyDelta<C> |
createPropertyModification(ItemPath path,
PrismPropertyDefinition propertyDefinition) |
ReferenceDelta |
createReferenceModification(ItemPath refPath) |
ReferenceDelta |
createReferenceModification(ItemPath path,
PrismReferenceDefinition referenceDefinition) |
ObjectDelta<O> |
createReverseDelta() |
boolean |
equivalent(ObjectDelta other) |
ObjectDelta.FactorOutResultSingle<O> |
factorOut(Collection<? extends ItemPath> paths,
boolean cloneDelta) |
ObjectDelta.FactorOutResultMulti<O> |
factorOutValues(ItemPath path,
boolean cloneDelta) |
<X extends Containerable> |
findContainerDelta(ItemPath propertyPath) |
<IV extends PrismValue,ID extends ItemDefinition> |
findItemDelta(ItemPath itemPath)
TODO specify this method!
An attempt:
Given this ADD or MODIFY object delta OD, finds an item delta ID such that "ID has the same effect on an item specified
by itemPath as OD" (simply said).
|
<IV extends PrismValue,ID extends ItemDefinition> |
findItemDelta(ItemPath itemPath,
boolean strict) |
<IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>,DD extends ItemDelta<IV,ID>> |
findItemDelta(ItemPath itemPath,
Class<DD> deltaType,
Class<I> itemType,
boolean strict) |
Collection<? extends ItemDelta<?,?>> |
findItemDeltasSubPath(ItemPath itemPath)
Returns all item deltas at or below a specified path.
|
<IV extends PrismValue,ID extends ItemDefinition> |
findPartial(ItemPath propertyPath) |
<X> PropertyDelta<X> |
findPropertyDelta(ItemPath propertyPath) |
<X> PropertyDelta<X> |
findPropertyDelta(ItemPath parentPath,
QName propertyName)
Top-level path is assumed.
|
ReferenceDelta |
findReferenceModification(ItemPath itemPath) |
ChangeType |
getChangeType() |
List<PrismValue> |
getDeletedValuesFor(ItemPath itemPath)
Limitations:
(1) For DELETE object delta, we don't know what values were in the object's item.
|
Collection<? extends ItemDelta<?,?>> |
getModifications() |
List<ItemPath> |
getModifiedItems() |
List<PrismValue> |
getNewValuesFor(ItemPath itemPath) |
PrismObject<O> |
getObjectToAdd() |
Class<O> |
getObjectTypeClass() |
String |
getOid() |
PrismContext |
getPrismContext() |
boolean |
hasCompleteDefinition() |
boolean |
hasItemDelta(ItemPath propertyPath) |
boolean |
hasItemOrSubitemDelta(ItemPath propertyPath) |
boolean |
isAdd() |
static boolean |
isAdd(ObjectDelta<?> objectDelta) |
boolean |
isDelete() |
static boolean |
isDelete(ObjectDelta<?> objectDelta) |
boolean |
isEmpty() |
static boolean |
isEmpty(ObjectDelta delta) |
boolean |
isImmutable() |
boolean |
isModify() |
static boolean |
isModify(ObjectDelta<?> objectDelta) |
boolean |
isRedundant(PrismObject<O> object,
boolean assumeMissingItems) |
void |
merge(ObjectDelta<O> deltaToMerge)
Merge provided delta into this delta.
|
void |
mergeModification(ItemDelta<?,?> modificationToMerge) |
void |
mergeModifications(Collection<? extends ItemDelta> modificationsToMerge) |
ObjectDelta<O> |
narrow(PrismObject<O> existingObject,
boolean assumeMissingItems) |
void |
normalize() |
void |
removeContainerModification(ItemPath itemName) |
<D extends ItemDelta> |
removeModification(ItemDelta<?,?> itemDelta) |
void |
removePropertyModification(ItemPath itemPath) |
void |
removeReferenceModification(ItemPath itemPath) |
void |
revive(PrismContext prismContext) |
void |
setChangeType(ChangeType changeType) |
void |
setImmutable(boolean immutable) |
void |
setObjectToAdd(PrismObject<O> objectToAdd) |
void |
setObjectTypeClass(Class<O> objectTypeClass) |
void |
setOid(String oid) |
void |
setPrismContext(PrismContext prismContext) |
ObjectDelta<O> |
subtract(Collection<ItemPath> paths)
Returns modifications that are related to the given paths; removes them from the original delta.
|
boolean |
subtract(ItemPath itemPath,
PrismValue value,
boolean fromMinusSet,
boolean dryRun)
Checks if the delta tries to add (or set) a 'value' for the item identified by 'itemPath'.
|
void |
swallow(ItemDelta<?,?> newItemDelta)
Incorporates the property delta into the existing property deltas
(regardless of the change type).
|
void |
swallow(List<ItemDelta<?,?>> itemDeltas) |
String |
toDebugType()
Returns short string identification of object type.
|
debugDump, debugDump, debugDumpLazily, debugDumpLazily
void accept(Visitor visitor, boolean includeOldValues)
void accept(Visitor visitor, ItemPath path, boolean recursive)
accept
in interface PathVisitable
ChangeType getChangeType()
void setChangeType(ChangeType changeType)
static boolean isAdd(ObjectDelta<?> objectDelta)
boolean isAdd()
static boolean isDelete(ObjectDelta<?> objectDelta)
boolean isDelete()
static boolean isModify(ObjectDelta<?> objectDelta)
boolean isModify()
String getOid()
void setOid(String oid)
PrismContext getPrismContext()
void setPrismContext(PrismContext prismContext)
PrismObject<O> getObjectToAdd()
void setObjectToAdd(PrismObject<O> objectToAdd)
@NotNull Collection<? extends ItemDelta<?,?>> getModifications()
<D extends ItemDelta> D addModification(D itemDelta)
boolean containsModification(ItemDelta itemDelta)
boolean containsModification(ItemDelta itemDelta, EquivalenceStrategy strategy)
boolean containsAllModifications(Collection<? extends ItemDelta<?,?>> itemDeltas, EquivalenceStrategy strategy)
void addModifications(Collection<? extends ItemDelta> itemDeltas)
void addModifications(ItemDelta<?,?>... itemDeltas)
<IV extends PrismValue,ID extends ItemDefinition> ItemDelta<IV,ID> findItemDelta(ItemPath itemPath)
<IV extends PrismValue,ID extends ItemDefinition> ItemDelta<IV,ID> findItemDelta(ItemPath itemPath, boolean strict)
<IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>,DD extends ItemDelta<IV,ID>> DD findItemDelta(ItemPath itemPath, Class<DD> deltaType, Class<I> itemType, boolean strict)
<IV extends PrismValue,ID extends ItemDefinition> Collection<PartiallyResolvedDelta<IV,ID>> findPartial(ItemPath propertyPath)
boolean hasItemDelta(ItemPath propertyPath)
boolean hasItemOrSubitemDelta(ItemPath propertyPath)
boolean hasCompleteDefinition()
<X> PropertyDelta<X> findPropertyDelta(ItemPath parentPath, QName propertyName)
<X> PropertyDelta<X> findPropertyDelta(ItemPath propertyPath)
<X extends Containerable> ContainerDelta<X> findContainerDelta(ItemPath propertyPath)
ReferenceDelta findReferenceModification(ItemPath itemPath)
Collection<? extends ItemDelta<?,?>> findItemDeltasSubPath(ItemPath itemPath)
void removeReferenceModification(ItemPath itemPath)
void removeContainerModification(ItemPath itemName)
void removePropertyModification(ItemPath itemPath)
boolean isEmpty()
void normalize()
ObjectDelta<O> narrow(PrismObject<O> existingObject, boolean assumeMissingItems)
void applyDefinitionIfPresent(PrismObjectDefinition<O> definition, boolean tolerateNoDefinition) throws SchemaException
SchemaException
ObjectDelta<O> clone()
void merge(ObjectDelta<O> deltaToMerge) throws SchemaException
SchemaException
void mergeModifications(Collection<? extends ItemDelta> modificationsToMerge) throws SchemaException
SchemaException
void mergeModification(ItemDelta<?,?> modificationToMerge) throws SchemaException
SchemaException
void applyTo(PrismObject<O> targetObject) throws SchemaException
SchemaException
void applyTo(PrismObject<O> targetObject, ParameterizedEquivalenceStrategy strategy) throws SchemaException
SchemaException
PrismObject<O> computeChangedObject(PrismObject<O> objectOld) throws SchemaException
objectOld
- object before changeSchemaException
void swallow(ItemDelta<?,?> newItemDelta) throws SchemaException
SchemaException
void swallow(List<ItemDelta<?,?>> itemDeltas) throws SchemaException
SchemaException
<X> PropertyDelta<X> createPropertyModification(ItemPath path)
<C> PropertyDelta<C> createPropertyModification(ItemPath path, PrismPropertyDefinition propertyDefinition)
ReferenceDelta createReferenceModification(ItemPath path, PrismReferenceDefinition referenceDefinition)
<C extends Containerable> ContainerDelta<C> createContainerModification(ItemPath path)
<C extends Containerable> ContainerDelta<C> createContainerModification(ItemPath path, PrismContainerDefinition<C> containerDefinition)
<X> PropertyDelta<X> addModificationReplaceProperty(ItemPath propertyPath, X... propertyValues)
<X> void addModificationAddProperty(ItemPath propertyPath, X... propertyValues)
<X> void addModificationDeleteProperty(ItemPath propertyPath, X... propertyValues)
<C extends Containerable> void addModificationAddContainer(ItemPath propertyPath, C... containerables) throws SchemaException
SchemaException
<C extends Containerable> void addModificationAddContainer(ItemPath propertyPath, PrismContainerValue<C>... containerValues)
<C extends Containerable> void addModificationDeleteContainer(ItemPath propertyPath, C... containerables) throws SchemaException
SchemaException
<C extends Containerable> void addModificationDeleteContainer(ItemPath propertyPath, PrismContainerValue<C>... containerValues)
<C extends Containerable> void addModificationReplaceContainer(ItemPath propertyPath, PrismContainerValue<C>... containerValues)
void addModificationAddReference(ItemPath path, PrismReferenceValue... refValues)
void addModificationDeleteReference(ItemPath path, PrismReferenceValue... refValues)
void addModificationReplaceReference(ItemPath path, PrismReferenceValue... refValues)
ReferenceDelta createReferenceModification(ItemPath refPath)
ObjectDelta<O> createReverseDelta() throws SchemaException
SchemaException
void checkConsistence()
void checkConsistence(ConsistencyCheckScope scope)
void checkConsistence(boolean requireOid, boolean requireDefinition, boolean prohibitRaw)
void checkConsistence(boolean requireOid, boolean requireDefinition, boolean prohibitRaw, ConsistencyCheckScope scope)
void assertDefinitions() throws SchemaException
SchemaException
void assertDefinitions(String sourceDescription) throws SchemaException
SchemaException
void assertDefinitions(boolean tolerateRawElements) throws SchemaException
SchemaException
void assertDefinitions(boolean tolerateRawElements, String sourceDescription) throws SchemaException
SchemaException
void revive(PrismContext prismContext) throws SchemaException
SchemaException
void applyDefinition(PrismObjectDefinition<O> objectDefinition, boolean force) throws SchemaException
SchemaException
boolean equivalent(ObjectDelta other)
String toDebugType()
static boolean isEmpty(ObjectDelta delta)
ObjectDelta<O> subtract(@NotNull Collection<ItemPath> paths)
paths
- boolean isRedundant(PrismObject<O> object, boolean assumeMissingItems) throws SchemaException
SchemaException
@NotNull ObjectDelta.FactorOutResultSingle<O> factorOut(Collection<? extends ItemPath> paths, boolean cloneDelta)
@NotNull ObjectDelta.FactorOutResultMulti<O> factorOutValues(ItemPath path, boolean cloneDelta) throws SchemaException
SchemaException
boolean subtract(@NotNull ItemPath itemPath, @NotNull PrismValue value, boolean fromMinusSet, boolean dryRun)
itemPath
- value
- dryRun
- only testing if value could be subtracted; not changing anythingList<PrismValue> getNewValuesFor(ItemPath itemPath)
List<PrismValue> getDeletedValuesFor(ItemPath itemPath)
void clear()
boolean isImmutable()
void setImmutable(boolean immutable)
Copyright © 2019 Evolveum. All rights reserved.