Interface ItemDelegator<V extends PrismValue,D extends ItemDefinition<?>>
- All Superinterfaces:
Cloneable,ComplexCopyable<Item<V,,D>> DebugDumpable,Freezable,Item<V,,D> Itemable,ParentVisitable,PathVisitable,PrismVisitable,Revivable,Serializable,Visitable
- All Known Subinterfaces:
PrismContainerDelegator<C>,PrismObjectDelegator<O>,PrismPropertyDelegator<T>,PrismReferenceDelegator
- All Known Implementing Classes:
FlyweightClonedItem
-
Field Summary
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRINGFields inherited from interface com.evolveum.midpoint.prism.Item
KEY_NAMESPACE_CONTEXT -
Method Summary
Modifier and TypeMethodDescriptiondefault voiddefault voiddefault voidacceptParentVisitor(@NotNull Visitor visitor) Accepts a visitor that visits each item/value on the way to the structure root.default booleanacceptVisitor(PrismVisitor visitor) Accept visitor and visits prism item or value and it's children Note: name is not accept, but accept visitor to prevent naming conflict in lambdas dynamic languages such as groovy withVisitable.accept(com.evolveum.midpoint.prism.Visitor)default booleanAdds a given value, overwriting existing one.default booleanadd(V newValue, @NotNull EquivalenceStrategy strategy) Adds a value, overwriting existing one(s).default booleanaddAll(Collection<V> newValues) Adds given values, with the same semantics as repeated add(..) calls.default booleanaddAll(Collection<V> newValues, @NotNull EquivalenceStrategy strategy) Adds given values, with the same semantics as repeated add(..) calls.default ItemModifyResult<V>addIgnoringEquivalents(V newValue) Adds a value, not looking for equivalent values.default ItemModifyResult<V>addRespectingMetadataAndCloning(V value, @NotNull EquivalenceStrategy strategy, EquivalenceStrategy metadataEquivalenceStrategy) Adds a value, respecting the metadata.default voidapplyDefinition(D definition) default voidapplyDefinition(D definition, boolean force) Applies the definition to this item (and all its values, down to the lowest level).default voidapplyDefinitionIfMissing(D definition) default voiddefault voidassertDefinitions(boolean tolerateRawValues, Supplier<String> sourceDescriptionSupplier) default voidassertDefinitions(Supplier<String> sourceDescriptionSupplier) default voiddefault voidcheckConsistence(boolean requireDefinitions, boolean prohibitRaw) default voidcheckConsistence(boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope) default voidcheckConsistence(boolean requireDefinitions, ConsistencyCheckScope scope) default voiddefault voidcheckConsistenceInternal(Itemable rootItem, boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope) default voiddefault voiddefault voidclear()Removes all values from the item.cloneComplex(@NotNull CloneStrategy strategy) Complex clone with different cloning strategies.default booleandefault booleancontains(V value, @NotNull EquivalenceStrategy strategy) Creates specific subclass of ItemDelta appropriate for type of item that this definition represents (e.g.createDelta(ItemPath path) default StringShow the content of the object intended for diagnostics by system administrator.default StringdebugDump(int indent) default Objectdefault ObjectdebugDumpLazily(int indent) delegate()Computes a difference (delta) with the specified item using DEFAULT_FOR_DELTA_APPLICATION (REAL_VALUE_CONSIDER_DIFFERENT_IDS) equivalence strategy.diff(Item<V, D> other, @NotNull ParameterizedEquivalenceStrategy strategy) Computes a difference (delta) with the specified item using given equivalence strategy.default booleanequals(Object obj, @NotNull EquivalenceStrategy equivalenceStrategy) Compares this item to the specified object under given strategy.default booleanequals(Object obj, @NotNull ParameterizedEquivalenceStrategy equivalenceStrategy) Compares this item to the specified object under given strategy.default voidfilterValues(Function<V, Boolean> function) default voidfilterYields(BiFunction<V, PrismContainerValue, Boolean> function) default ObjectReturns object (Item or PrismValue) pointed to by the given path.default <IV extends PrismValue,ID extends ItemDefinition<?>>
PartiallyResolvedItem<IV,ID> findPartial(ItemPath path) default VfindValue(V value, @NotNull EquivalenceStrategy strategy) default VfindValue(V value, @NotNull Comparator<V> comparator) default voidfreeze()Should be no-op (or very quick) if the object is already immutable.default @NotNull Collection<Item<?,?>> getAllItems(@NotNull ItemPath path) Returns all items corresponding to the provided path.default @NotNull Collection<PrismValue>getAllValues(ItemPath path) Returns all values corresponding to the provided path.default VReturns any of the values.default VgetAnyValue(@NotNull ValueSelector<V> selector) Returns a value matching given selector (or null if none exists).default Collection<V>default DReturns applicable definition.default StringReturns a display name for the item.default ItemNameReturns the name of the item.default StringgetHelp()Returns help message defined for the item.default Longdefault @Nullable PrismNamespaceContextReturns the namespace context for this item if available.default @Nullable PrismContainerValue<?>Returns the parent of this item (if exists).default @NotNull ItemPathgetPath()Returns the path of this item (sequence of names from the "root" container or similar object to this item).default @Nullable ObjectReturns the "real value" (content) of this item: - value contained in PrismPropertyValue - Referencable in PrismReferenceValue - Containerable in PrismContainerValue - Objectable in PrismObjectValue Note that the real value can contain operational items.default <X> XgetRealValue(Class<X> type) Type override, also for compatibility.default @NotNull Collection<?>Returns (potentially empty) collection of "real values".default <X> @NotNull Collection<X>getRealValues(Class<X> type) Returns detached collection of real values, although the values are still _connected_ to the original item (in case of complex properties, references, and containers).default <X> X[]getRealValuesArray(Class<X> type) Type override, also for compatibility.default @NotNull Collection<Object>Returns the "user data", a map that allows attaching arbitrary named data to this item.default <T> TgetUserData(String key) Returns the user data for the given key (name).default VgetValue()Returns the value, if there is only one.Returns the values for this item.default booleandefault booleanReturns true if this item and all contained items have definitions.default inthashCode(@NotNull EquivalenceStrategy equivalenceStrategy) Computes hash code to be used under given equivalence strategy.default inthashCode(@NotNull ParameterizedEquivalenceStrategy equivalenceStrategy) Computes hash code to be used under given equivalence strategy.default booleandefault booleanhasRaw()Returns true is at least one of the values is raw.default booleanisEmpty()Normally the same asItem.hasNoValues().default booleandefault booleanFlag that indicates incomplete item.default booleanReturns true if this item is metadata item that should be ignored for metadata-insensitive comparisons and hashCode functions.default booleanisRaw()Returns true is all the values are raw.default booleanReturns true if the item contains 0 or 1 values and (by definition) is not multivalued.default booleandefault voidMerge all the values of other item to this item.default voidCurrently doing nothing.default voidRe-apply PolyString (and possible other) normalizations to the object.default booleanRemoves values equivalent to given value from the item.default booleanremove(V value, @NotNull EquivalenceStrategy strategy) Removes values equivalent to given value from the item; under specified equivalence strategy OR when values represent the same value via "representsSameValue(.., lax=false)" method.default booleanremoveAll(Collection<V> values, @NotNull EquivalenceStrategy strategy) Removes all given values from the item.default voiddefault ItemModifyResult<V>removeRespectingMetadata(V value, @NotNull EquivalenceStrategy strategy, EquivalenceStrategy metadataEquivalenceStrategy) Removes values equivalent to given value from the item; under specified equivalence strategy OR when values represent the same value via "representsSameValue(.., lax=false)" method.default voidReplaces all values of the item by given value.default voidreplaceAll(Collection<V> newValues, @NotNull EquivalenceStrategy strategy) Replaces all values of the item by given values.default voidrevive(PrismContext prismContext) TODO: Is revive necessary if prism context is static?default voidsetDefinition(D definition) Sets applicable item definition.default voidsetElementName(QName elementName) Sets the name of the item.default voidsetIncomplete(boolean incomplete) Flags the item as incomplete.default voidsetParent(@Nullable PrismContainerValue<?> parentValue) Sets the parent of this item.default voidsetUserData(String key, Object value) Sets the user data for the given key (name).default intsize()Returns the number of values for this item.Methods inherited from interface com.evolveum.midpoint.prism.Item
clone, copy, equals, hashCode, immutableCopy, mutableCopy
-
Method Details
-
delegate
-
getDefinition
Description copied from interface:ItemReturns applicable definition.May return null if no definition is applicable or the definition is not known.
- Specified by:
getDefinitionin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Specified by:
getDefinitionin interfaceItemable- Returns:
- applicable definition
-
hasCompleteDefinition
default boolean hasCompleteDefinition()Description copied from interface:ItemReturns true if this item and all contained items have definitions.- Specified by:
hasCompleteDefinitionin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getElementName
Description copied from interface:ItemReturns the name of the item.The name is a QName. It uniquely defines an item.
The name may be null, but such an item will not work.
The name is the QName of XML element in the XML representation.
- Specified by:
getElementNamein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Specified by:
getElementNamein interfaceItemable- Returns:
- item name TODO consider making element name obligatory
-
setElementName
Description copied from interface:ItemSets the name of the item.The name is a QName. It uniquely defines an item.
The name may be null, but such an item will not work.
The name is the QName of XML element in the XML representation.
- Specified by:
setElementNamein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Parameters:
elementName- the name to set TODO consider removing this method
-
setDefinition
Description copied from interface:ItemSets applicable item definition.- Specified by:
setDefinitionin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Parameters:
definition- the definition to set
-
getDisplayName
Description copied from interface:ItemReturns a display name for the item.Returns null if the display name cannot be determined.
The display name is fetched from the definition. If no definition (schema) is available, the display name will not be returned.
- Specified by:
getDisplayNamein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- display name for the item
-
getHelp
Description copied from interface:ItemReturns help message defined for the item.Returns null if the help message cannot be determined.
The help message is fetched from the definition. If no definition (schema) is available, the help message will not be returned.
- Specified by:
getHelpin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- help message for the item
-
isIncomplete
default boolean isIncomplete()Description copied from interface:ItemFlag that indicates incomplete item. If set to true then the values in this item are not complete. If this flag is true then it can be assumed that the object that this item represents has at least one value. This is a method how to indicate that the item really has some values, but are not here. This may be used for variety of purposes. It may indicate that the account has a password, but the password value is not revealed. This may indicate that a user has a photo, but the photo was not requested and therefore is not returned. This may be used to indicate that only part of the attribute values were returned from the search. And so on. *Behavior*: For single-valued items, the `incomplete` flag is cleared when a known value is set up (via delta or Java API). See also https://docs.evolveum.com/midpoint/devel/design/incomplete-items-4.9.1/.- Specified by:
isIncompletein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
setIncomplete
default void setIncomplete(boolean incomplete) Description copied from interface:ItemFlags the item as incomplete. FIXME: Should be package-visible to implementation- Specified by:
setIncompletein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Parameters:
incomplete- The new value- See Also:
-
getParent
Description copied from interface:ItemReturns the parent of this item (if exists). Currently this has to be a PrismContainerValue.- Specified by:
getParentin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- The parent if exists
-
setParent
Description copied from interface:ItemSets the parent of this item.- Specified by:
setParentin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Parameters:
parentValue- The new parent
-
getPath
Description copied from interface:ItemReturns the path of this item (sequence of names from the "root" container or similar object to this item). Note that if the containing object is a delta (usually a container delta), then the path- Specified by:
getPathin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Specified by:
getPathin interfaceItemable- Returns:
- the path
-
getNamespaceContext
Description copied from interface:ItemReturns the namespace context for this item if available. Namespace context is currently stored in user data with key Namespace context is stored only ifPrismParser.preserveNamespaceContext()is flag was used during parsing- Specified by:
getNamespaceContextin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- The namespace context for this item if available.
- See Also:
-
getUserData
Description copied from interface:ItemReturns the "user data", a map that allows attaching arbitrary named data to this item.- Specified by:
getUserDatain interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- the user data map
-
getUserData
Description copied from interface:ItemReturns the user data for the given key (name).- Specified by:
getUserDatain interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
setUserData
Description copied from interface:ItemSets the user data for the given key (name).- Specified by:
setUserDatain interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getValues
Description copied from interface:ItemReturns the values for this item. Although the ordering of this values is not important, and each value should be present at most once, we currently return them as a list instead of a set. TODO reconsider this FIXME we should return immutable list, to avoid manipulating the values directly FIXME and maybe we should return List<? extends V> to avoid specializing the values, see ShadowAssociationValue in midPoint- Specified by:
getValuesin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
valuesStream
- Specified by:
valuesStreamin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
size
default int size()Description copied from interface:ItemReturns the number of values for this item.- Specified by:
sizein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getAnyValue
Description copied from interface:ItemReturns any of the values. Usually called when we are quite confident that there is only a single value; or we don't care which of the values we get. Does not create values if there are none.- Specified by:
getAnyValuein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getValue
Description copied from interface:ItemReturns the value, if there is only one. Throws exception if there are more values. If there is no value, this method either: - returns null (for properties) - throws an exception (for items that can hold multiple values) - creates an empty value (for containers and references). TODO think again whether getOrCreateValue would not be better- Specified by:
getValuein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getAnyValue
Description copied from interface:ItemReturns a value matching given selector (or null if none exists).- Specified by:
getAnyValuein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getRealValue
Description copied from interface:ItemReturns the "real value" (content) of this item: - value contained in PrismPropertyValue - Referencable in PrismReferenceValue - Containerable in PrismContainerValue - Objectable in PrismObjectValue Note that the real value can contain operational items. It can also contain container IDs (although they are not considered to be part of the real value). It does not contain information about item element name nor other metadata like origin, definition, etc. (Although e.g. Containerable can be converted back into PrismContainerValue that can be used to retrieve this information.)- Specified by:
getRealValuein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getRealValue
Description copied from interface:ItemType override, also for compatibility.- Specified by:
getRealValuein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getRealValuesArray
Description copied from interface:ItemType override, also for compatibility.- Specified by:
getRealValuesArrayin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getRealValues
Description copied from interface:ItemReturns (potentially empty) collection of "real values". The list itself is detached, freely modifiable. (Note that the values can still embed a parent, e.g., for containers and references.)- Specified by:
getRealValuesin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - See Also:
-
getRealValues
Description copied from interface:ItemReturns detached collection of real values, although the values are still _connected_ to the original item (in case of complex properties, references, and containers). BEWARE, it's not always possible to get the real values.- Specified by:
getRealValuesin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getRealValuesOrRawTypes
@OneUseOnly("Delta serialization") @Experimental @NotNull default @NotNull Collection<Object> getRealValuesOrRawTypes()- Specified by:
getRealValuesOrRawTypesin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
isSingleValue
default boolean isSingleValue()Description copied from interface:ItemReturns true if the item contains 0 or 1 values and (by definition) is not multivalued.- Specified by:
isSingleValuein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
isSingleValueByDefinition
default boolean isSingleValueByDefinition()- Specified by:
isSingleValueByDefinitionin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
add
Description copied from interface:ItemAdds a given value, overwriting existing one. It compares values using DEFAULT_FOR_EQUALS (DATA) strategy, so it e.g. takes value metadata differences into account. It is because this method is used during parsing, internal computations (typically using generated beans), and similar situations where we expect little sophistication when it comes to value comparison. The less surprises the better.- Specified by:
addin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Throws:
SchemaException
-
add
@OneUseOnly("convenience") default boolean add(@NotNull V newValue, @NotNull @NotNull EquivalenceStrategy strategy) throws SchemaException Description copied from interface:ItemAdds a value, overwriting existing one(s). Uses specified equivalence strategy.- Specified by:
addin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- true if this item changed as a result of the call. This is either during real value addition or during overwriting existing value with a different one. The "difference" is taken using the DEFAULT_FOR_EQUALS (DATA) equivalence strategy.
- Throws:
SchemaException
-
addIgnoringEquivalents
Description copied from interface:ItemAdds a value, not looking for equivalent values. (This means that the new value is always added, if possible.) Note that we check the cardinality of the item according to its definition, i.e. we do not allow single-valued item to contain more than one value.- Specified by:
addIgnoringEquivalentsin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Throws:
SchemaException
-
addAll
Description copied from interface:ItemAdds given values, with the same semantics as repeated add(..) calls.- Specified by:
addAllin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- true if this item changed as a result of the call (i.e. if at least one value was really added)
- Throws:
SchemaException
-
addAll
default boolean addAll(Collection<V> newValues, @NotNull @NotNull EquivalenceStrategy strategy) throws SchemaException Description copied from interface:ItemAdds given values, with the same semantics as repeated add(..) calls. For equality testing uses given strategy.- Specified by:
addAllin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- true if this item changed as a result of the call (i.e. if at least one value was really added)
- Throws:
SchemaException
-
remove
Description copied from interface:ItemRemoves values equivalent to given value from the item. Note we use REAL_VALUE_CONSIDER_DIFFERENT_IDS strategy that ignores value metadata and operational data. This may or may not be good! TODO reconsider- Specified by:
removein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
remove
Description copied from interface:ItemRemoves values equivalent to given value from the item; under specified equivalence strategy OR when values represent the same value via "representsSameValue(.., lax=false)" method.- Specified by:
removein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- true if this item changed as a result of the call (i.e. if at least one value was really removed)
-
removeIf
- Specified by:
removeIfin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
addRespectingMetadataAndCloning
default ItemModifyResult<V> addRespectingMetadataAndCloning(V value, @NotNull @NotNull EquivalenceStrategy strategy, EquivalenceStrategy metadataEquivalenceStrategy) throws SchemaException Description copied from interface:ItemAdds a value, respecting the metadata. I.e. if equivalent value exists, the metadata are merged. (Replacing metadata of colliding provenance, adding all the others.) If a value is to be added as a whole, it is cloned.- Specified by:
addRespectingMetadataAndCloningin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Throws:
SchemaException
-
removeRespectingMetadata
default ItemModifyResult<V> removeRespectingMetadata(V value, @NotNull @NotNull EquivalenceStrategy strategy, EquivalenceStrategy metadataEquivalenceStrategy) Description copied from interface:ItemRemoves values equivalent to given value from the item; under specified equivalence strategy OR when values represent the same value via "representsSameValue(.., lax=false)" method. Respects metadata, i.e. if value to be removed has metadata specified, this method removes only particular metadata. Only if this means that all metadata are gone, then the value is deleted.- Specified by:
removeRespectingMetadatain interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- null if value was removed, otherwise value which was modified.
-
removeAll
Description copied from interface:ItemRemoves all given values from the item. It is basically a shortcut for repeatedItem.remove(PrismValue, EquivalenceStrategy)call.- Specified by:
removeAllin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- true if this item changed as a result of the call (i.e. if at least one value was really removed)
-
clear
default void clear()Description copied from interface:ItemRemoves all values from the item.- Specified by:
clearin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
replaceAll
default void replaceAll(Collection<V> newValues, @NotNull @NotNull EquivalenceStrategy strategy) throws SchemaException Description copied from interface:ItemReplaces all values of the item by given values.- Specified by:
replaceAllin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Throws:
SchemaException
-
replace
Description copied from interface:ItemReplaces all values of the item by given value.- Specified by:
replacein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Throws:
SchemaException
-
equals
Description copied from interface:ItemCompares this item to the specified object under given strategy.- Specified by:
equalsin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
equals
default boolean equals(Object obj, @NotNull @NotNull ParameterizedEquivalenceStrategy equivalenceStrategy) Description copied from interface:ItemCompares this item to the specified object under given strategy.- Specified by:
equalsin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
hashCode
Description copied from interface:ItemComputes hash code to be used under given equivalence strategy.- Specified by:
hashCodein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
hashCode
Description copied from interface:ItemComputes hash code to be used under given equivalence strategy.- Specified by:
hashCodein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
contains
- Specified by:
containsin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- true if the item contains a given value (by default using DEFAULT_FOR_EQUALS i.e. DATA strategy) Note that the "sameness" (ID-only value matching) is NOT considered here.
-
contains
- Specified by:
containsin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- true if the item contains a given value under specified equivalence strategy Note that the "sameness" (ID-only value matching) is NOT considered here.
-
findValue
- Specified by:
findValuein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- a value of this item that is equivalent to the given one under given equivalence strategy (or null if no such value exists)
-
findValue
- Specified by:
findValuein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Returns:
- a value of this item that is equivalent to the given one under given comparator (or null if no such value exists)
-
diff
Description copied from interface:ItemComputes a difference (delta) with the specified item using DEFAULT_FOR_DELTA_APPLICATION (REAL_VALUE_CONSIDER_DIFFERENT_IDS) equivalence strategy. Compares item values only -- does NOT dive into lower levels.- Specified by:
diffin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
diff
default ItemDelta<V,D> diff(Item<V, D> other, @NotNull @NotNull ParameterizedEquivalenceStrategy strategy) Description copied from interface:ItemComputes a difference (delta) with the specified item using given equivalence strategy. Note this method cannot accept general EquivalenceStrategy here; it needs the parameterized strategy. Compares item values only -- does NOT dive into lower levels.- Specified by:
diffin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getClonedValues
- Specified by:
getClonedValuesin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
normalize
default void normalize()Description copied from interface:ItemCurrently doing nothing.- Specified by:
normalizein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
merge
Description copied from interface:ItemMerge all the values of other item to this item.- Specified by:
mergein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Throws:
SchemaException
-
find
Description copied from interface:ItemReturns object (Item or PrismValue) pointed to by the given path.- Specified by:
findin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
findPartial
default <IV extends PrismValue,ID extends ItemDefinition<?>> PartiallyResolvedItem<IV,ID> findPartial(ItemPath path) - Specified by:
findPartialin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
createDelta
Description copied from interface:ItemCreates specific subclass of ItemDelta appropriate for type of item that this definition represents (e.g. PropertyDelta, ContainerDelta, ...)- Specified by:
createDeltain interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
createDelta
- Specified by:
createDeltain interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
acceptParentVisitor
Description copied from interface:ItemAccepts a visitor that visits each item/value on the way to the structure root.- Specified by:
acceptParentVisitorin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Specified by:
acceptParentVisitorin interfaceParentVisitable
-
recomputeAllValues
default void recomputeAllValues()Description copied from interface:ItemRe-apply PolyString (and possible other) normalizations to the object.- Specified by:
recomputeAllValuesin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
filterValues
- Specified by:
filterValuesin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
filterYields
- Specified by:
filterYieldsin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
applyDefinition
- Specified by:
applyDefinitionin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Throws:
SchemaException
-
applyDefinitionIfMissing
- Specified by:
applyDefinitionIfMissingin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Throws:
SchemaException
-
applyDefinition
Description copied from interface:ItemApplies the definition to this item (and all its values, down to the lowest level). It may even convert the values, e.g. from their raw (unparsed) form to the parsed one, or - for resource attributes - betweenStringandPolyStringvalues (due to the normalization).- Specified by:
applyDefinitionin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Throws:
SchemaException
-
createImmutableClone
- Specified by:
createImmutableClonein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
cloneComplex
Description copied from interface:ItemComplex clone with different cloning strategies.- Specified by:
cloneComplexin interfaceComplexCopyable<V extends PrismValue>- Specified by:
cloneComplexin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - See Also:
-
checkConsistence
- Specified by:
checkConsistencein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
checkConsistence
default void checkConsistence(boolean requireDefinitions, boolean prohibitRaw) - Specified by:
checkConsistencein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
checkConsistence
default void checkConsistence(boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope) - Specified by:
checkConsistencein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
checkConsistence
default void checkConsistence()- Specified by:
checkConsistencein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
checkConsistence
- Specified by:
checkConsistencein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
checkConsistenceInternal
default void checkConsistenceInternal(Itemable rootItem, boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope) - Specified by:
checkConsistenceInternalin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
assertDefinitions
- Specified by:
assertDefinitionsin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Throws:
SchemaException
-
assertDefinitions
- Specified by:
assertDefinitionsin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Throws:
SchemaException
-
assertDefinitions
default void assertDefinitions(boolean tolerateRawValues, Supplier<String> sourceDescriptionSupplier) throws SchemaException - Specified by:
assertDefinitionsin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Throws:
SchemaException
-
isRaw
default boolean isRaw()Description copied from interface:ItemReturns true is all the values are raw.- Specified by:
isRawin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
hasRaw
default boolean hasRaw()Description copied from interface:ItemReturns true is at least one of the values is raw.- Specified by:
hasRawin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
isEmpty
default boolean isEmpty()Description copied from interface:ItemNormally the same asItem.hasNoValues(). But a container is considered empty also if all its values (PCVs) are empty. This is a bit strange and should be revisited.- Specified by:
isEmptyin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
hasNoValues
default boolean hasNoValues()- Specified by:
hasNoValuesin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
hasAnyValue
default boolean hasAnyValue()- Specified by:
hasAnyValuein interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
isOperational
default boolean isOperational()Description copied from interface:ItemReturns true if this item is metadata item that should be ignored for metadata-insensitive comparisons and hashCode functions.- Specified by:
isOperationalin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getAllValues
Description copied from interface:ItemReturns all values corresponding to the provided path. The path may contain ambiguous segments (e.g. `assignment/targetRef` when there are more assignments). Limitations: . The path can contain only name segments and the "identifier" (`#`) segment - at least for now. No ID segments. . There are no guarantees about duplicate values. They may or may not be present in the returned collections. . The caller should not modify the returned collection in any way. Note to implementors: Please take care about the performance of this method.- Specified by:
getAllValuesin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getAllItems
Description copied from interface:ItemReturns all items corresponding to the provided path. This is an analogue toItem.getAllValues(ItemPath). The only difference here is that `#` segment is not allowed, as it does not correspond to an item. (Shouldn't these methods be rather called findAllValues/findAllItems?)- Specified by:
getAllItemsin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
getHighestId
- Specified by:
getHighestIdin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>>
-
acceptVisitor
Description copied from interface:PrismVisitableAccept visitor and visits prism item or value and it's children Note: name is not accept, but accept visitor to prevent naming conflict in lambdas dynamic languages such as groovy withVisitable.accept(com.evolveum.midpoint.prism.Visitor)- Specified by:
acceptVisitorin interfaceItem<V extends PrismValue,D extends ItemDefinition<?>> - Specified by:
acceptVisitorin interfacePrismVisitable- Returns:
- return value of
PrismVisitor.visit(PrismVisitable)invocation for this visitable.
-
debugDump
Description copied from interface:DebugDumpableShow the content of the object intended for diagnostics by system administrator. The out put should be suitable to use in system logs at "debug" level. It may be multi-line, but in that case it should be well indented and quite terse. As it is intended to be used by system administrator, it should not use any developer terms such as class names, exceptions or stack traces.- Specified by:
debugDumpin interfaceDebugDumpable- Returns:
- content of the object intended for diagnostics by system administrator.
-
debugDump
- Specified by:
debugDumpin interfaceDebugDumpable
-
debugDumpLazily
- Specified by:
debugDumpLazilyin interfaceDebugDumpable
-
debugDumpLazily
- Specified by:
debugDumpLazilyin interfaceDebugDumpable
-
accept
- Specified by:
acceptin interfaceVisitable<V extends PrismValue>
-
accept
- Specified by:
acceptin interfacePathVisitable
-
revive
Description copied from interface:RevivableTODO: Is revive necessary if prism context is static? TODO document (if it's found to be necessary) -
isImmutable
default boolean isImmutable()- Specified by:
isImmutablein interfaceFreezable
-
freeze
default void freeze()Description copied from interface:FreezableShould be no-op (or very quick) if the object is already immutable. -
checkMutable
default void checkMutable()- Specified by:
checkMutablein interfaceFreezable
-
checkImmutable
default void checkImmutable()- Specified by:
checkImmutablein interfaceFreezable
-