Class PrismContainerImpl<C extends Containerable>
- All Implemented Interfaces:
- Freezable,- Item<PrismContainerValue<C>,,- PrismContainerDefinition<C>> - Itemable,- ItemDefinitionTransformer.TransformableItem,- ParentVisitable,- PathVisitable,- PrismContainer<C>,- PrismContainerable<C>,- PrismVisitable,- Revivable,- Visitable,- DebugDumpable,- Serializable,- Cloneable
- Direct Known Subclasses:
- PrismObjectImpl,- ShadowAssociation,- ShadowAssociationsContainerImpl,- ShadowAttributesContainerImpl
Property container groups properties into logical blocks.The reason for grouping may be as simple as better understandability of data structure. But the group usually means different meaning, source or structure of the data. For example, the property container is frequently used to hold properties that are dynamic, not fixed by a static schema. Such grouping also naturally translates to XML and helps to "quarantine" such properties to avoid Unique Particle Attribute problems.
Property Container contains a set of (potentially multi-valued) properties or inner property containers. The order of properties is not significant, regardless of the fact that it may be fixed in the XML representation. In the XML representation, each element inside Property Container must be either Property or a Property Container.
Property Container is mutable.
- Author:
- Radovan Semancik
- See Also:
- 
Field SummaryFieldsFields inherited from class com.evolveum.midpoint.prism.impl.ItemImpldefinition, elementName, incomplete, parent, valuesFields inherited from interface com.evolveum.midpoint.util.DebugDumpableINDENT_STRINGFields inherited from interface com.evolveum.midpoint.prism.ItemKEY_NAMESPACE_CONTEXT
- 
Constructor SummaryConstructorsConstructorDescriptionPrismContainerImpl(QName name) PrismContainerImpl(QName name, @NotNull Class<C> compileTimeClass, @Nullable PrismContainerDefinition<C> definition) The `definition` parameter is here to preserve the definition if already present for a value (when instantiating from it).PrismContainerImpl(QName name, PrismContainerDefinition<C> definition) 
- 
Method SummaryModifier and TypeMethodDescriptionvoidvoidConvenience method.protected ItemModifyResult<PrismContainerValue<C>>addInternal(@NotNull PrismContainerValue newValue, boolean checkEquivalents, EquivalenceStrategy strategy) protected booleanaddInternalExecution(@NotNull PrismContainerValue<C> newValue) voidapplyDefinition(@NotNull PrismContainerDefinition<C> definition, boolean force) Applies the definition to this item (and all its values, down to the lowest level).voidassertDefinitions(boolean tolerateRawValues, Supplier<String> sourceDescriptionSupplier) booleancanRepresent(@NotNull Class<?> compileTimeClass) Returns true if values of this container can be represented as specified compile-time class.booleancanRepresent(@NotNull QName type) Returns true if values of this container can be presented as specified type (from compile-time or runtime schema).voidcheckConsistenceInternal(Itemable rootItem, boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope) clone()Literal clone.cloneComplex(CloneStrategy strategy) Complex clone with different cloning strategies.booleancontainsItem(ItemPath itemPath, boolean acceptEmptyItem) protected voidcopyValues(@NotNull CloneStrategy strategy, PrismContainerImpl<C> clone) Creates specific subclass of ItemDelta appropriate for type of item that this definition represents (e.g.createDelta(ItemPath path) protected @NotNull PrismContainerValueImpl<C>Can be overridden in subclasses.static <V extends PrismContainerValue>
 voidcreateParentIfNeeded(V value, ItemDefinition definition) debugDump(int indent) deepCloneDefinition(@NotNull DeepCloneOperation operation) diff(PrismContainer<C> other) diff(PrismContainer<C> other, ParameterizedEquivalenceStrategy strategy) diffModifications(PrismContainer<C> other, ParameterizedEquivalenceStrategy strategy) booleanequivalent(Object obj) This method ignores some part of the object during comparison (e.g. source demarcation in values) These methods compare the "meaningful" parts of the objects.Returns object (Item or PrismValue) pointed to by the given path.<T extends Containerable>
 PrismContainer<T>findContainer(ItemPath path) <T extends Containerable>
 PrismContainer<T>findContainer(QName containerName) <IV extends PrismValue,ID extends ItemDefinition<?>, I extends Item<IV, ID>> 
 IfindCreateItem(ItemPath itemPath, Class<I> type, ID itemDefinition, boolean create) <IV extends PrismValue,ID extends ItemDefinition<?>, I extends Item<IV, ID>> 
 IfindCreateItem(QName itemQName, Class<I> type, boolean create) <IV extends PrismValue,ID extends ItemDefinition<?>> 
 Item<IV,ID> <IV extends PrismValue,ID extends ItemDefinition<?>, I extends Item<IV, ID>> 
 I<IV extends PrismValue,ID extends ItemDefinition<?>, I extends Item<IV, ID>> 
 I<T extends Containerable>
 PrismContainer<T>findOrCreateContainer(ItemPath containerPath) <IV extends PrismValue,ID extends ItemDefinition<?>, I extends Item<IV, ID>> 
 IfindOrCreateItem(ItemPath containerPath, Class<I> type) <IV extends PrismValue,ID extends ItemDefinition<?>, I extends Item<IV, ID>> 
 IfindOrCreateItem(ItemPath containerPath, Class<I> type, ID definition) <T> PrismProperty<T>findOrCreateProperty(ItemPath propertyPath) findOrCreateReference(ItemPath propertyPath) <IV extends PrismValue,ID extends ItemDefinition<?>> 
 PartiallyResolvedItem<IV,ID> findPartial(ItemPath path) <T> PrismProperty<T>findProperty(ItemPath path) findReference(ItemPath path) findValue(long id) @NotNull Collection<Item<?,?>> getAllItems(@NotNull ItemPath path) Returns all items corresponding to the provided path.@NotNull Collection<PrismValue>getAllValues(ItemPath path) Returns all values corresponding to the provided path.Returns the static type of data represented by values of this container, if known and applicable.protected StringReturn a human readable name of this class suitable for logs.Returns applicable property container definition.<T> TgetPropertyRealValue(ItemPath propertyPath, Class<T> type) Returns 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.@NotNull Collection<C>Returns (potentially empty) collection of "real values".@NotNull PrismContainerValue<C>getValue()Returns the value, if there is only one.booleanReturns true if the object and all contained prisms have definitions.booleanisEmpty()Normally the same asItem.hasNoValues().voidmergeValue(PrismContainerValue<C> otherValue) voidmergeValues(PrismContainer<C> other) voidmergeValues(Collection<PrismContainerValue<C>> otherValues) protected voidpropagateDeepCloneDefinition(@NotNull DeepCloneOperation operation, PrismContainerDefinition<C> clonedDef) TODO descriptionvoidConvenience method.voidremoveContainer(ItemPath path) <IV extends PrismValue,ID extends ItemDefinition<?>, I extends Item<IV, ID>> 
 voidremoveItem(ItemPath path, Class<I> itemType) voidremoveProperty(ItemPath path) voidremoveReference(ItemPath path) <X extends Containerable>
 voidsetContainerRealValue(QName itemName, X realValue) voidsetDefinition(@NotNull PrismContainerDefinition<C> definition) Sets applicable property container definition.voidsetDefinitionHack(@NotNull PrismContainerDefinition<C> definition) <T> voidsetPropertyRealValue(QName propertyName, T realValue) <T> voidsetPropertyRealValues(QName propertyName, T... realValues) voidsetRealValue(C value) voidsetValue(@NotNull PrismContainerValue<C> value) voidvoidtoString()voidtrim()Remove all empty valuesvoidtrimDefinitionTree(Collection<? extends ItemPath> alwaysKeep) Optimizes (trims) definition tree by removing any definitions not corresponding to items in this container.booleanMethods inherited from class com.evolveum.midpoint.prism.impl.ItemImplaccept, acceptParentVisitor, add, addAll, addForced, addIgnoringEquivalents, addRespectingMetadataAndCloning, addWithResult, appendDebugDumpSuffix, applyDefinitionToValues, assertDefinitions, assertDefinitions, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkDefinition, clear, copyValues, diff, equals, equals, equals, fixupDelta, getElementName, getHighestId, getParent, getPath, getPathComponent, getRealValue, getRealValuesArray, getUserData, getUserData, getValues, hashCode, hashCode, hashCode, isIncomplete, merge, normalize, performFreeze, recomputeAllValues, remove, remove, removeAll, removeRespectingMetadata, removeWithResult, replace, replaceAll, revive, setElementName, setIncomplete, setParent, setUserData, transformDefinition, valueRemovedMethods inherited from class com.evolveum.midpoint.prism.AbstractFreezablefreeze, freeze, freezeAll, freezeNullableList, isImmutable, isMutableMethods inherited from class java.lang.Objectfinalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.evolveum.midpoint.util.DebugDumpabledebugDump, debugDumpLazily, debugDumpLazilyMethods inherited from interface com.evolveum.midpoint.prism.FreezablecheckImmutable, checkMutable, freeze, isImmutableMethods inherited from interface com.evolveum.midpoint.prism.ItemacceptParentVisitor, acceptVisitor, add, add, addAll, addAll, addIgnoringEquivalents, addRespectingMetadataAndCloning, applyDefinition, applyDefinitionIfMissing, assertDefinitions, assertDefinitions, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkConsistence, clear, contains, contains, copy, diff, diff, equals, equals, equals, filterValues, filterYields, findValue, findValue, getAnyValue, getAnyValue, getClonedValues, getDisplayName, getElementName, getHelp, getHighestId, getNamespaceContext, getParent, getPath, getRealValue, getRealValues, getRealValuesArray, getRealValuesOrRawTypes, getUserData, getUserData, hasAnyValue, hashCode, hashCode, hashCode, hasNoValues, hasRaw, isIncomplete, isOperational, isRaw, isSingleValue, isSingleValueByDefinition, merge, normalize, recomputeAllValues, remove, remove, removeAll, removeIf, removeRespectingMetadata, replace, replaceAll, setElementName, setIncomplete, setParent, setUserData, size, valuesStreamMethods inherited from interface com.evolveum.midpoint.prism.PrismContainergetValuesMethods inherited from interface com.evolveum.midpoint.prism.PrismContainerablegetComplexTypeDefinition
- 
Field Details- 
compileTimeClass
 
- 
- 
Constructor Details- 
PrismContainerImpl
- 
PrismContainerImplpublic PrismContainerImpl(QName name, @NotNull @NotNull Class<C> compileTimeClass, @Nullable @Nullable PrismContainerDefinition<C> definition) The `definition` parameter is here to preserve the definition if already present for a value (when instantiating from it). Useful for dynamic definitions of midPoint shadows, for example.
- 
PrismContainerImpl
 
- 
- 
Method Details- 
getCompileTimeClassDescription copied from interface:PrismContainerReturns the static type of data represented by values of this container, if known and applicable. (There are containers that are purely dynamic, i.e. without any compile time class.)- Specified by:
- getCompileTimeClassin interface- PrismContainer<C extends Containerable>
- Specified by:
- getCompileTimeClassin interface- PrismContainerable<C extends Containerable>
 
- 
canRepresentDescription copied from interface:PrismContainerReturns true if values of this container can be represented as specified compile-time class. For example, PrismContainer of AbstractRoleType has: - canRepresent(AbstractRoleType.class) = true - canRepresent(FocusType.class) = true - canRepresent(ObjectType.class) = true - canRepresent(TaskType.class) = false - canRepresent(RoleType.class) = false- Specified by:
- canRepresentin interface- PrismContainer<C extends Containerable>
 
- 
canRepresentDescription copied from interface:PrismContainerReturns true if values of this container can be presented as specified type (from compile-time or runtime schema). In particular, returns true if type of this container or any of its supertypes match given type.- Specified by:
- canRepresentin interface- PrismContainer<C extends Containerable>
 
- 
getRealValuesDescription 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 interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Specified by:
- getRealValuesin interface- PrismContainer<C extends Containerable>
- Returns:
- List of current values. The list itself is freely modifiable - it is independent on the list of values in this container. However, values themselves are directly linked to the PCVs.
- See Also:
 
- 
getRealValueDescription 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 interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Specified by:
- getRealValuein interface- PrismContainer<C extends Containerable>
- Overrides:
- getRealValuein class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
setRealValue- Specified by:
- setRealValuein interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
getValueDescription 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 interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Specified by:
- getValuein interface- PrismContainer<C extends Containerable>
- Overrides:
- getValuein class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
setValue- Specified by:
- setValuein interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
addInternalprotected ItemModifyResult<PrismContainerValue<C>> addInternal(@NotNull @NotNull PrismContainerValue newValue, boolean checkEquivalents, EquivalenceStrategy strategy) throws SchemaException - Overrides:
- addInternalin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Throws:
- SchemaException
 
- 
addInternalExecution- Overrides:
- addInternalExecutionin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
getValue- Specified by:
- getValuein interface- PrismContainer<C extends Containerable>
 
- 
setPropertyRealValue- Specified by:
- setPropertyRealValuein interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
setContainerRealValuepublic <X extends Containerable> void setContainerRealValue(QName itemName, X realValue) throws SchemaException - Specified by:
- setContainerRealValuein interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
setPropertyRealValues- Specified by:
- setPropertyRealValuesin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
getPropertyRealValue- Specified by:
- getPropertyRealValuein interface- PrismContainer<C extends Containerable>
 
- 
addConvenience method. Works only on single-valued containers.- Specified by:
- addin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
createNewValue- Specified by:
- createNewValuein interface- PrismContainer<C extends Containerable>
 
- 
createNewValueInternalCan be overridden in subclasses.
- 
mergeValues- Specified by:
- mergeValuesin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
mergeValues- Specified by:
- mergeValuesin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
mergeValue- Specified by:
- mergeValuein interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
trimpublic void trim()Remove all empty values- Specified by:
- trimin interface- PrismContainer<C extends Containerable>
 
- 
getDefinitionReturns applicable property container definition.May return null if no definition is applicable or the definition is not know. - Specified by:
- getDefinitionin interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Specified by:
- getDefinitionin interface- Itemable
- Specified by:
- getDefinitionin interface- PrismContainer<C extends Containerable>
- Specified by:
- getDefinitionin interface- PrismContainerable<C extends Containerable>
- Overrides:
- getDefinitionin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Returns:
- applicable property container definition
 
- 
setDefinitionSets applicable property container definition.- Specified by:
- setDefinitionin interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Overrides:
- setDefinitionin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Parameters:
- definition- the definition to set
 
- 
setDefinitionHack
- 
applyDefinitionpublic void applyDefinition(@NotNull @NotNull PrismContainerDefinition<C> definition, boolean force) throws SchemaException 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 interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Overrides:
- applyDefinitionin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Throws:
- SchemaException
 
- 
findItempublic <IV extends PrismValue,ID extends ItemDefinition<?>, I findItemI extends Item<IV, ID>> (QName itemQName, Class<I> type) - Specified by:
- findItemin interface- PrismContainer<C extends Containerable>
 
- 
hasCompleteDefinitionpublic boolean hasCompleteDefinition()Returns true if the object and all contained prisms have definitions.- Specified by:
- hasCompleteDefinitionin interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
findDescription copied from interface:ItemReturns object (Item or PrismValue) pointed to by the given path.- Specified by:
- findin interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
findPartialpublic <IV extends PrismValue,ID extends ItemDefinition<?>> PartiallyResolvedItem<IV,ID> findPartial(ItemPath path) - Specified by:
- findPartialin interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Specified by:
- findPartialin interface- PrismContainer<C extends Containerable>
 
- 
findCreateItempublic <IV extends PrismValue,ID extends ItemDefinition<?>, I findCreateItemI extends Item<IV, ID>> (QName itemQName, Class<I> type, boolean create) throws SchemaException - Specified by:
- findCreateItemin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
findItempublic <IV extends PrismValue,ID extends ItemDefinition<?>, I findItemI extends Item<IV, ID>> (ItemPath path, Class<I> type) - Specified by:
- findItemin interface- PrismContainer<C extends Containerable>
 
- 
findItem- Specified by:
- findItemin interface- PrismContainer<C extends Containerable>
 
- 
containsItem- Specified by:
- containsItemin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
findCreateItempublic <IV extends PrismValue,ID extends ItemDefinition<?>, I findCreateItemI extends Item<IV, ID>> (ItemPath itemPath, Class<I> type, ID itemDefinition, boolean create) throws SchemaException - Specified by:
- findCreateItemin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
findValue- Specified by:
- findValuein interface- PrismContainer<C extends Containerable>
 
- 
findContainer- Specified by:
- findContainerin interface- PrismContainer<C extends Containerable>
 
- 
findContainer
- 
findProperty- Specified by:
- findPropertyin interface- PrismContainer<C extends Containerable>
 
- 
findReference- Specified by:
- findReferencein interface- PrismContainer<C extends Containerable>
 
- 
findOrCreateItempublic <IV extends PrismValue,ID extends ItemDefinition<?>, I findOrCreateItemI extends Item<IV, ID>> (ItemPath containerPath, Class<I> type) throws SchemaException - Specified by:
- findOrCreateItemin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
findOrCreateItempublic <IV extends PrismValue,ID extends ItemDefinition<?>, I findOrCreateItemI extends Item<IV, ID>> (ItemPath containerPath, Class<I> type, ID definition) throws SchemaException - Specified by:
- findOrCreateItemin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
findOrCreateContainerpublic <T extends Containerable> PrismContainer<T> findOrCreateContainer(ItemPath containerPath) throws SchemaException - Specified by:
- findOrCreateContainerin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
findOrCreateProperty- Specified by:
- findOrCreatePropertyin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
findOrCreateReference- Specified by:
- findOrCreateReferencein interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
- 
removeConvenience method. Works only on single-valued containers.- Specified by:
- removein interface- PrismContainer<C extends Containerable>
 
- 
removeProperty- Specified by:
- removePropertyin interface- PrismContainer<C extends Containerable>
 
- 
removeContainer- Specified by:
- removeContainerin interface- PrismContainer<C extends Containerable>
 
- 
removeReference- Specified by:
- removeReferencein interface- PrismContainer<C extends Containerable>
 
- 
removeItempublic <IV extends PrismValue,ID extends ItemDefinition<?>, void removeItemI extends Item<IV, ID>> (ItemPath path, Class<I> itemType) - Specified by:
- removeItemin interface- PrismContainer<C extends Containerable>
 
- 
createDeltaDescription copied from interface:ItemCreates specific subclass of ItemDelta appropriate for type of item that this definition represents (e.g. PropertyDelta, ContainerDelta, ...)- Specified by:
- createDeltain interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Specified by:
- createDeltain interface- PrismContainer<C extends Containerable>
 
- 
createDelta- Specified by:
- createDeltain interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Specified by:
- createDeltain interface- PrismContainer<C extends Containerable>
 
- 
isEmptypublic 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 interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
checkConsistenceInternalpublic void checkConsistenceInternal(Itemable rootItem, boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope) - Specified by:
- checkConsistenceInternalin interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Overrides:
- checkConsistenceInternalin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
assertDefinitionspublic void assertDefinitions(boolean tolerateRawValues, Supplier<String> sourceDescriptionSupplier) throws SchemaException - Specified by:
- assertDefinitionsin interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Overrides:
- assertDefinitionsin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Throws:
- SchemaException
 
- 
diff- Specified by:
- diffin interface- PrismContainer<C extends Containerable>
 
- 
diff- Specified by:
- diffin interface- PrismContainer<C extends Containerable>
 
- 
diffModificationspublic List<? extends ItemDelta> diffModifications(PrismContainer<C> other, ParameterizedEquivalenceStrategy strategy) - Specified by:
- diffModificationsin interface- PrismContainer<C extends Containerable>
 
- 
cloneDescription copied from interface:ItemLiteral clone.- Specified by:
- clonein interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Specified by:
- clonein interface- PrismContainer<C extends Containerable>
- Specified by:
- clonein class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
createImmutableClone- Specified by:
- createImmutableClonein interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Specified by:
- createImmutableClonein interface- PrismContainer<C extends Containerable>
- Overrides:
- createImmutableClonein class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
cloneComplexDescription copied from interface:ItemComplex clone with different cloning strategies.- Specified by:
- cloneComplexin interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Specified by:
- cloneComplexin interface- PrismContainer<C extends Containerable>
- See Also:
 
- 
copyValues
- 
deepCloneDefinitionpublic PrismContainerDefinition<C> deepCloneDefinition(@NotNull @NotNull DeepCloneOperation operation) - Specified by:
- deepCloneDefinitionin interface- PrismContainer<C extends Containerable>
 
- 
propagateDeepCloneDefinitionprotected void propagateDeepCloneDefinition(@NotNull @NotNull DeepCloneOperation operation, PrismContainerDefinition<C> clonedDef) Description copied from class:ItemImplTODO description- Overrides:
- propagateDeepCloneDefinitionin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
accept- Specified by:
- acceptin interface- PathVisitable
- Specified by:
- acceptin interface- PrismContainer<C extends Containerable>
- Overrides:
- acceptin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
equivalentThis method ignores some part of the object during comparison (e.g. source demarcation in values) These methods compare the "meaningful" parts of the objects.- Specified by:
- equivalentin interface- PrismContainer<C extends Containerable>
 
- 
toString- Overrides:
- toStringin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
debugDump- Specified by:
- debugDumpin interface- DebugDumpable
- Overrides:
- debugDumpin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
getDebugDumpClassNameReturn a human readable name of this class suitable for logs.- Overrides:
- getDebugDumpClassNamein class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
createParentIfNeededpublic static <V extends PrismContainerValue> void createParentIfNeeded(V value, ItemDefinition definition) throws SchemaException - Throws:
- SchemaException
 
- 
trimDefinitionTreeOptimizes (trims) definition tree by removing any definitions not corresponding to items in this container. Works recursively by sub-containers of this one. USE WITH CARE. Make sure the definitions are not shared by other objects!- Specified by:
- trimDefinitionTreein interface- PrismContainer<C extends Containerable>
 
- 
getAllValuesDescription 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 interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Overrides:
- getAllValuesin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
getAllItemsDescription 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 interface- Item<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
- Overrides:
- getAllItemsin class- ItemImpl<PrismContainerValue<C extends Containerable>,- PrismContainerDefinition<C extends Containerable>> 
 
- 
startStrictModificationspublic void startStrictModifications()
- 
useIdentifierIndexpublic boolean useIdentifierIndex()
- 
stopStrictModificationspublic void stopStrictModifications()
 
-