Interface PropertyDelta<T>
-
- All Superinterfaces:
DebugDumpable
,Foreachable<PrismPropertyValue<T>>
,Freezable
,Itemable
,ItemDelta<PrismPropertyValue<T>,PrismPropertyDefinition<T>>
,PathVisitable
,PrismContextSensitive
,Serializable
,Visitable
- All Known Implementing Classes:
PropertyDeltaImpl
public interface PropertyDelta<T> extends ItemDelta<PrismPropertyValue<T>,PrismPropertyDefinition<T>>
Relative difference (delta) of a property values.This class describes what values are to be added, removed or replaced in the property. The delta can be either add+delete or replace, but not both. It either describes what values to add and delete from the property (add+delete) or what is the new set of values (replace). Add+delete deltas can be merged without a loss. There are ideal for multi-value properties. If replace deltas are merged, only the last value will be present. These are better suited for single-value properties.
- Author:
- Radovan Semancik
- See Also:
ObjectDelta
-
-
Field Summary
-
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addRealValuesToAdd(Collection<T> newValues)
void
addRealValuesToAdd(T... newValues)
void
addRealValuesToDelete(Collection<T> values)
void
addRealValuesToDelete(T... newValues)
void
applyDefinition(PrismPropertyDefinition<T> definition)
PropertyDelta<T>
clone()
T
getAnyRealValue()
Class<PrismProperty>
getItemClass()
PrismPropertyDefinition<T>
getPropertyDefinition()
PrismProperty<T>
getPropertyNewMatchingPath()
Returns the "new" state of the property - the state that would be after the delta is applied.PrismProperty<T>
getPropertyNewMatchingPath(PrismProperty<T> propertyOld)
Returns the "new" state of the property - the state that would be after the delta is applied.<T> Collection<PrismPropertyValue<T>>
getValues(Class<T> type)
Returns all values regardless of whether they are added or removed or replaced.<P extends PrismProperty>
PinstantiateEmptyProperty()
boolean
isApplicableToType(Item item)
boolean
isRealValueToAdd(PrismPropertyValue<?> value)
boolean
isRealValueToDelete(PrismPropertyValue<?> value)
boolean
isRedundant(PrismObject<? extends Objectable> object, ParameterizedEquivalenceStrategy strategy, MatchingRule<T> matchingRule, boolean assumeMissingItems)
PropertyDelta<T>
narrow(PrismObject<? extends Objectable> object, boolean assumeMissingItems)
Filters out all delta values that are meaningless to apply.PropertyDelta<T>
narrow(PrismObject<? extends Objectable> object, ParameterizedEquivalenceStrategy strategy, MatchingRule<T> matchingRule, boolean assumeMissingItems)
void
setDefinition(PrismPropertyDefinition<T> definition)
void
setPropertyDefinition(PrismPropertyDefinition<T> propertyDefinition)
void
setRealValuesToReplace(T... newValues)
-
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, applyTo, applyTo, applyToMatchingPath, assertDefinitions, assertDefinitions, checkConsistence, checkConsistence, checkConsistence, clear, clearValuesToAdd, clearValuesToDelete, clearValuesToReplace, cloneWithChangedParentPath, contains, contains, createReverseDelta, debugDump, distributeReplace, equals, equivalent, filterValues, findValueToAddOrReplace, foreach, getAnyValue, getDefinition, getElementName, getEstimatedOldValues, getItemNew, getItemNew, getItemNewMatchingPath, getParentPath, getPath, getSubDelta, getValueChanges, getValuesToAdd, getValuesToDelete, getValuesToReplace, hasCompleteDefinition, isAdd, isApplicableTo, isDelete, isEmpty, isImmutable, isInFactEmpty, isRaw, isRedundant, isRedundant, isReplace, isValueToAdd, isValueToAdd, isValueToDelete, isValueToDelete, isValueToReplace, 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, toDeltaSetTriple, toString, validate, validate, validateValues, validateValues
-
Methods inherited from interface com.evolveum.midpoint.prism.PrismContextSensitive
getPrismContext
-
-
-
-
Method Detail
-
getPropertyDefinition
PrismPropertyDefinition<T> getPropertyDefinition()
-
setPropertyDefinition
void setPropertyDefinition(PrismPropertyDefinition<T> propertyDefinition)
-
setDefinition
void setDefinition(PrismPropertyDefinition<T> definition)
- Specified by:
setDefinition
in interfaceItemDelta<PrismPropertyValue<T>,PrismPropertyDefinition<T>>
-
applyDefinition
void applyDefinition(PrismPropertyDefinition<T> definition) throws SchemaException
- Specified by:
applyDefinition
in interfaceItemDelta<PrismPropertyValue<T>,PrismPropertyDefinition<T>>
- Throws:
SchemaException
-
getItemClass
Class<PrismProperty> getItemClass()
- Specified by:
getItemClass
in interfaceItemDelta<PrismPropertyValue<T>,PrismPropertyDefinition<T>>
-
getValues
<T> Collection<PrismPropertyValue<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.
-
getAnyRealValue
T getAnyRealValue()
-
instantiateEmptyProperty
<P extends PrismProperty> P instantiateEmptyProperty()
-
isApplicableToType
boolean isApplicableToType(Item item)
-
clone
PropertyDelta<T> clone()
- Specified by:
clone
in interfaceItemDelta<PrismPropertyValue<T>,PrismPropertyDefinition<T>>
-
isRealValueToAdd
boolean isRealValueToAdd(PrismPropertyValue<?> value)
-
isRealValueToDelete
boolean isRealValueToDelete(PrismPropertyValue<?> value)
-
getPropertyNewMatchingPath
PrismProperty<T> getPropertyNewMatchingPath() throws SchemaException
Returns the "new" state of the property - the state that would be after the delta is applied.- Throws:
SchemaException
-
getPropertyNewMatchingPath
PrismProperty<T> getPropertyNewMatchingPath(PrismProperty<T> propertyOld) throws SchemaException
Returns the "new" state of the property - the state that would be after the delta is applied.- Throws:
SchemaException
-
narrow
PropertyDelta<T> narrow(PrismObject<? extends Objectable> object, boolean assumeMissingItems)
Description copied from interface:ItemDelta
Filters out all delta values that are meaningless to apply. E.g. removes all values to add that the property already has, removes all values to delete that the property does not have, etc. Returns null if the delta is not needed at all.- Specified by:
narrow
in interfaceItemDelta<PrismPropertyValue<T>,PrismPropertyDefinition<T>>
assumeMissingItems
- Assumes that some items in the object may be missing. So replacing them by null or deleting some values from them cannot be narrowed out.
-
narrow
PropertyDelta<T> narrow(PrismObject<? extends Objectable> object, ParameterizedEquivalenceStrategy strategy, MatchingRule<T> matchingRule, boolean assumeMissingItems)
-
isRedundant
boolean isRedundant(PrismObject<? extends Objectable> object, ParameterizedEquivalenceStrategy strategy, MatchingRule<T> matchingRule, boolean assumeMissingItems)
-
setRealValuesToReplace
void setRealValuesToReplace(T... newValues)
-
addRealValuesToAdd
void addRealValuesToAdd(T... newValues)
-
addRealValuesToDelete
void addRealValuesToDelete(T... newValues)
-
addRealValuesToAdd
void addRealValuesToAdd(Collection<T> newValues)
-
addRealValuesToDelete
void addRealValuesToDelete(Collection<T> values)
-
-