Class PrismContainerImpl<C extends Containerable>
- java.lang.Object
- 
- com.evolveum.midpoint.prism.AbstractFreezable
- 
- com.evolveum.midpoint.prism.impl.ItemImpl<PrismContainerValue<C>,PrismContainerDefinition<C>>
- 
- com.evolveum.midpoint.prism.impl.PrismContainerImpl<C>
 
 
 
- 
- All Implemented Interfaces:
- Freezable,- Item<PrismContainerValue<C>,PrismContainerDefinition<C>>,- Itemable,- ParentVisitable,- PathVisitable,- PrismContainer<C>,- PrismContainerable<C>,- PrismContextSensitive,- Revivable,- Visitable,- DebugDumpable,- Serializable
 - Direct Known Subclasses:
- PrismObjectImpl,- ResourceAttributeContainerImpl
 
 public class PrismContainerImpl<C extends Containerable> extends ItemImpl<PrismContainerValue<C>,PrismContainerDefinition<C>> implements PrismContainer<C> 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:
- Serialized Form
 
- 
- 
Field SummaryFields Modifier and Type Field Description protected Class<C>compileTimeClass- 
Fields inherited from class com.evolveum.midpoint.prism.impl.ItemImpldefaultEquivalenceStrategy, definition, elementName, immutable, incomplete, parent, prismContext, values
 - 
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpableINDENT_STRING
 
- 
 - 
Constructor SummaryConstructors Constructor Description PrismContainerImpl(QName name)PrismContainerImpl(QName name, PrismContainerDefinition<C> definition, PrismContext prismContext)PrismContainerImpl(QName name, PrismContext prismContext)PrismContainerImpl(QName name, Class<C> compileTimeClass)PrismContainerImpl(QName name, Class<C> compileTimeClass, PrismContext prismContext)
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(Visitor visitor, ItemPath path, boolean recursive)booleanadd(@NotNull PrismContainerValue newValue, boolean checkUniqueness)Adds a given value, unless an equivalent one is already there (if checkUniqueness is true).voidadd(Item<?,?> item)Convenience method.voidapplyDefinition(PrismContainerDefinition<C> definition)voidassertDefinitions(boolean tolerateRaw, String sourceDescription)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)protected voidcheckDefinition(PrismContainerDefinition<C> def)PrismContainer<C>clone()Literal clone.PrismContainer<C>cloneComplex(CloneStrategy strategy)Complex clone with different cloning strategies.booleancontainsEquivalentValue(PrismContainerValue<C> value, @Nullable Comparator<PrismContainerValue<C>> comparator)booleancontainsItem(ItemPath itemPath, boolean acceptEmptyItem)protected voidcopyValues(CloneStrategy strategy, PrismContainerImpl<C> clone)ContainerDelta<C>createDelta()Creates specific subclass of ItemDelta appropriate for type of item that this definition represents (e.g.ContainerDelta<C>createDelta(ItemPath path)PrismContainer<C>createImmutableClone()PrismContainerValue<C>createNewValue()static <V extends PrismContainerValue>
 voidcreateParentIfNeeded(V value, ItemDefinition definition)StringdebugDump(int indent)PrismContainerDefinition<C>deepCloneDefinition(boolean ultraDeep, Consumer<ItemDefinition> postCloneAction)ContainerDelta<C>diff(PrismContainer<C> other)ContainerDelta<C>diff(PrismContainer<C> other, ParameterizedEquivalenceStrategy strategy)List<? extends ItemDelta>diffModifications(PrismContainer<C> other)List<? extends ItemDelta>diffModifications(PrismContainer<C> other, ParameterizedEquivalenceStrategy strategy)booleanequivalent(Object obj)This method ignores some part of the object during comparison (e.g.Objectfind(ItemPath path)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>findItem(ItemPath path)<IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>>
 IfindItem(ItemPath path, Class<I> type)<IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>>
 IfindItem(QName itemQName, Class<I> type)<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)PrismReferencefindOrCreateReference(ItemPath propertyPath)<IV extends PrismValue,ID extends ItemDefinition>
 PartiallyResolvedItem<IV,ID>findPartial(ItemPath path)<T> PrismProperty<T>findProperty(ItemPath path)PrismReferencefindReference(ItemPath path)PrismContainerValue<C>findValue(long id)Class<C>getCompileTimeClass()Returns the static type of data represented by values of this container, if known and applicable.protected StringgetDebugDumpClassName()Return a human readable name of this class suitable for logs.PrismContainerDefinition<C>getDefinition()Returns applicable property container definition.<T> TgetPropertyRealValue(ItemPath propertyPath, Class<T> type)CgetRealValue()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>getRealValues()Returns (potentially empty) collection of "real values".@NotNull PrismContainerValue<C>getValue()Returns the value, if there is only one.PrismContainerValue<C>getValue(Long id)booleanhasCompleteDefinition()Returns true if the object and all contained prisms have proper definition.booleanisEmpty()voidmergeValue(PrismContainerValue<C> otherValue)voidmergeValues(PrismContainer<C> other)voidmergeValues(Collection<PrismContainerValue<C>> otherValues)protected voidpropagateDeepCloneDefinition(boolean ultraDeep, PrismContainerDefinition<C> clonedDef, Consumer<ItemDefinition> postCloneAction)voidremove(Item<?,?> item)Convenience 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(PrismContainerDefinition<C> definition)Sets applicable property container definition.<T> voidsetPropertyRealValue(QName propertyName, T realValue)<T> voidsetPropertyRealValues(QName propertyName, T... realValues)voidsetValue(@NotNull PrismContainerValue<C> value)StringtoString()voidtrim()Remove all empty valuesvoidtrimDefinitionTree(Collection<? extends ItemPath> alwaysKeep)Optimizes (trims) definition tree by removing any definitions not corresponding to items in this container.- 
Methods inherited from class com.evolveum.midpoint.prism.impl.ItemImplaccept, acceptParentVisitor, add, add, addAll, addAll, addAll, addForced, appendDebugDumpSuffix, applyDefinition, assertDefinitions, assertDefinitions, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkConsistence, clear, contains, contains, contains, containsEquivalentValue, copyValues, diff, equals, equals, equals, filterValues, findValue, fixupDelta, getAllValues, getClonedValues, getElementName, getEqualsHashCodeStrategy, getHighestId, getParent, getPath, getPathComponent, getPrismContext, getPrismContextLocal, getRealValue, getRealValuesArray, getUserData, getUserData, getValues, hashCode, hashCode, hashCode, hasRaw, isIncomplete, isRaw, isSingleValue, merge, normalize, performFreeze, recomputeAllValues, remove, remove, remove, removeAll, replace, replaceAll, revive, setElementName, setIncomplete, setParent, setPrismContext, setUserData, size, valuesEqual
 - 
Methods inherited from class com.evolveum.midpoint.prism.AbstractFreezablefreeze, isImmutable, isMutable
 - 
Methods inherited from class java.lang.Objectfinalize, getClass, notify, notifyAll, wait, wait, wait
 - 
Methods inherited from interface com.evolveum.midpoint.util.DebugDumpabledebugDump, debugDumpLazily, debugDumpLazily
 - 
Methods inherited from interface com.evolveum.midpoint.prism.FreezablecheckImmutable, checkMutable, freeze, isImmutable
 - 
Methods inherited from interface com.evolveum.midpoint.prism.ItemacceptParentVisitor, add, add, addAll, addAll, addAll, applyDefinition, assertDefinitions, assertDefinitions, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkConsistence, clear, contains, contains, contains, containsEquivalentValue, diff, diff, equals, equals, equals, filterValues, findValue, getAllValues, getAnyValue, getAnyValue, getClonedValues, getDisplayName, getElementName, getHelp, getHighestId, getParent, getPath, getPrismContextLocal, getRealValue, getRealValuesArray, getRealValuesOrRawTypes, getUserData, getUserData, getValues, hashCode, hashCode, hashCode, hasNoValues, hasRaw, isIncomplete, isOperational, isRaw, isSingleValue, merge, normalize, recomputeAllValues, remove, remove, removeAll, replace, replaceAll, revive, setElementName, setIncomplete, setParent, setPrismContext, setUserData, size, valuesEqual
 - 
Methods inherited from interface com.evolveum.midpoint.prism.PrismContainerablegetComplexTypeDefinition
 - 
Methods inherited from interface com.evolveum.midpoint.prism.PrismContextSensitivegetPrismContext
 
- 
 
- 
- 
- 
Field Detail- 
compileTimeClassprotected Class<C extends Containerable> compileTimeClass 
 
- 
 - 
Constructor Detail- 
PrismContainerImplpublic PrismContainerImpl(QName name) 
 - 
PrismContainerImplpublic PrismContainerImpl(QName name, PrismContext prismContext) 
 - 
PrismContainerImplpublic PrismContainerImpl(QName name, Class<C> compileTimeClass, PrismContext prismContext) 
 - 
PrismContainerImplpublic PrismContainerImpl(QName name, PrismContainerDefinition<C> definition, PrismContext prismContext) 
 
- 
 - 
Method Detail- 
getCompileTimeClasspublic Class<C> getCompileTimeClass() Description 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>
 
 - 
canRepresentpublic boolean canRepresent(@NotNull @NotNull Class<?> compileTimeClass)Description 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>
 
 - 
canRepresentpublic boolean canRepresent(@NotNull @NotNull QName type)Description 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>
 
 - 
getRealValues@NotNull public @NotNull Collection<C> getRealValues() Description copied from interface:ItemReturns (potentially empty) collection of "real values".- 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.
 
 - 
getRealValue@NotNull public C 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 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>>
 
 - 
getValue@NotNull public @NotNull PrismContainerValue<C> 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 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>>
 
 - 
setValuepublic void setValue(@NotNull @NotNull PrismContainerValue<C> value) throws SchemaException- Specified by:
- setValuein interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
 - 
addpublic boolean add(@NotNull @NotNull PrismContainerValue newValue, boolean checkUniqueness) throws SchemaExceptionDescription copied from interface:ItemAdds a given value, unless an equivalent one is already there (if checkUniqueness is true).- Specified by:
- addin interface- Item<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
- Overrides:
- addin class- ItemImpl<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
- Returns:
- true if this item changed as a result of the call (i.e. if the value was really added) Note that even if checkUniqueness is false 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.
- Throws:
- SchemaException
 
 - 
getValuepublic PrismContainerValue<C> getValue(Long id) - Specified by:
- getValuein interface- PrismContainer<C extends Containerable>
 
 - 
setPropertyRealValuepublic <T> void setPropertyRealValue(QName propertyName, T realValue) throws SchemaException - 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
 
 - 
setPropertyRealValuespublic <T> void setPropertyRealValues(QName propertyName, T... realValues) throws SchemaException - Specified by:
- setPropertyRealValuesin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
 - 
getPropertyRealValuepublic <T> T getPropertyRealValue(ItemPath propertyPath, Class<T> type) - Specified by:
- getPropertyRealValuein interface- PrismContainer<C extends Containerable>
 
 - 
addpublic void add(Item<?,?> item) throws SchemaException Convenience method. Works only on single-valued containers.- Specified by:
- addin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
 - 
createNewValuepublic PrismContainerValue<C> createNewValue() - Specified by:
- createNewValuein interface- PrismContainer<C extends Containerable>
 
 - 
mergeValuespublic void mergeValues(PrismContainer<C> other) throws SchemaException - Specified by:
- mergeValuesin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
 - 
mergeValuespublic void mergeValues(Collection<PrismContainerValue<C>> otherValues) throws SchemaException - Specified by:
- mergeValuesin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
 - 
mergeValuepublic void mergeValue(PrismContainerValue<C> otherValue) throws SchemaException - 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>
 
 - 
getDefinitionpublic PrismContainerDefinition<C> getDefinition() Returns 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- PrismContainerable<C extends Containerable>
- Overrides:
- getDefinitionin class- ItemImpl<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
- Returns:
- applicable property container definition
 
 - 
setDefinitionpublic void setDefinition(PrismContainerDefinition<C> definition) Sets applicable property container definition.- Specified by:
- setDefinitionin interface- Item<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
- Specified by:
- setDefinitionin interface- PrismContainer<C extends Containerable>
- Overrides:
- setDefinitionin class- ItemImpl<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
- Parameters:
- definition- the definition to set
 
 - 
applyDefinitionpublic void applyDefinition(PrismContainerDefinition<C> definition) throws SchemaException - Specified by:
- applyDefinitionin interface- Item<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
- Specified by:
- applyDefinitionin interface- PrismContainer<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 extends Item<IV,ID>> I findItem(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 proper definition.- Specified by:
- hasCompleteDefinitionin interface- Item<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
 
 - 
findpublic Object find(ItemPath path) Description 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 extends Item<IV,ID>> I findCreateItem(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 extends Item<IV,ID>> I findItem(ItemPath path, Class<I> type) - Specified by:
- findItemin interface- PrismContainer<C extends Containerable>
 
 - 
findItempublic <IV extends PrismValue,ID extends ItemDefinition> Item<IV,ID> findItem(ItemPath path) - Specified by:
- findItemin interface- PrismContainer<C extends Containerable>
 
 - 
containsItempublic boolean containsItem(ItemPath itemPath, boolean acceptEmptyItem) throws SchemaException - Specified by:
- containsItemin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
 - 
findCreateItempublic <IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>> I findCreateItem(ItemPath itemPath, Class<I> type, ID itemDefinition, boolean create) throws SchemaException - Specified by:
- findCreateItemin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
 - 
findValuepublic PrismContainerValue<C> findValue(long id) - Specified by:
- findValuein interface- PrismContainer<C extends Containerable>
 
 - 
findContainerpublic <T extends Containerable> PrismContainer<T> findContainer(ItemPath path) - Specified by:
- findContainerin interface- PrismContainer<C extends Containerable>
 
 - 
findContainerpublic <T extends Containerable> PrismContainer<T> findContainer(QName containerName) 
 - 
findPropertypublic <T> PrismProperty<T> findProperty(ItemPath path) - Specified by:
- findPropertyin interface- PrismContainer<C extends Containerable>
 
 - 
findReferencepublic PrismReference findReference(ItemPath path) - Specified by:
- findReferencein interface- PrismContainer<C extends Containerable>
 
 - 
findOrCreateItempublic <IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>> I findOrCreateItem(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 extends Item<IV,ID>> I findOrCreateItem(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
 
 - 
findOrCreatePropertypublic <T> PrismProperty<T> findOrCreateProperty(ItemPath propertyPath) throws SchemaException - Specified by:
- findOrCreatePropertyin interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
 - 
findOrCreateReferencepublic PrismReference findOrCreateReference(ItemPath propertyPath) throws SchemaException - Specified by:
- findOrCreateReferencein interface- PrismContainer<C extends Containerable>
- Throws:
- SchemaException
 
 - 
removepublic void remove(Item<?,?> item) Convenience method. Works only on single-valued containers.- Specified by:
- removein interface- PrismContainer<C extends Containerable>
 
 - 
removePropertypublic void removeProperty(ItemPath path) - Specified by:
- removePropertyin interface- PrismContainer<C extends Containerable>
 
 - 
removeContainerpublic void removeContainer(ItemPath path) - Specified by:
- removeContainerin interface- PrismContainer<C extends Containerable>
 
 - 
removeReferencepublic void removeReference(ItemPath path) - Specified by:
- removeReferencein interface- PrismContainer<C extends Containerable>
 
 - 
removeItempublic <IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>> void removeItem(ItemPath path, Class<I> itemType) - Specified by:
- removeItemin interface- PrismContainer<C extends Containerable>
 
 - 
createDeltapublic ContainerDelta<C> 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 interface- Item<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
- Specified by:
- createDeltain interface- PrismContainer<C extends Containerable>
 
 - 
createDeltapublic ContainerDelta<C> createDelta(ItemPath path) - Specified by:
- createDeltain interface- Item<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
- Specified by:
- createDeltain interface- PrismContainer<C extends Containerable>
 
 - 
isEmptypublic boolean isEmpty() - Specified by:
- isEmptyin interface- Item<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
 
 - 
checkDefinitionprotected void checkDefinition(PrismContainerDefinition<C> def) - Specified by:
- checkDefinitionin class- ItemImpl<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 tolerateRaw, String sourceDescription) 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
 
 - 
diffpublic ContainerDelta<C> diff(PrismContainer<C> other) - Specified by:
- diffin interface- PrismContainer<C extends Containerable>
 
 - 
diffpublic ContainerDelta<C> diff(PrismContainer<C> other, ParameterizedEquivalenceStrategy strategy) - Specified by:
- diffin interface- PrismContainer<C extends Containerable>
 
 - 
diffModificationspublic List<? extends ItemDelta> diffModifications(PrismContainer<C> other) - Specified by:
- diffModificationsin interface- PrismContainer<C extends Containerable>
 
 - 
diffModificationspublic List<? extends ItemDelta> diffModifications(PrismContainer<C> other, ParameterizedEquivalenceStrategy strategy) - Specified by:
- diffModificationsin interface- PrismContainer<C extends Containerable>
 
 - 
clonepublic PrismContainer<C> clone() Description 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>>
 
 - 
createImmutableClonepublic PrismContainer<C> 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>>
 
 - 
cloneComplexpublic PrismContainer<C> cloneComplex(CloneStrategy strategy) Description 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:
- CloneStrategy
 
 - 
copyValuesprotected void copyValues(CloneStrategy strategy, PrismContainerImpl<C> clone) 
 - 
deepCloneDefinitionpublic PrismContainerDefinition<C> deepCloneDefinition(boolean ultraDeep, Consumer<ItemDefinition> postCloneAction) - Specified by:
- deepCloneDefinitionin interface- PrismContainer<C extends Containerable>
 
 - 
propagateDeepCloneDefinitionprotected void propagateDeepCloneDefinition(boolean ultraDeep, PrismContainerDefinition<C> clonedDef, Consumer<ItemDefinition> postCloneAction)- Overrides:
- propagateDeepCloneDefinitionin class- ItemImpl<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
 
 - 
containsEquivalentValuepublic boolean containsEquivalentValue(PrismContainerValue<C> value, @Nullable @Nullable Comparator<PrismContainerValue<C>> comparator) - Specified by:
- containsEquivalentValuein interface- Item<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
- Overrides:
- containsEquivalentValuein class- ItemImpl<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
- Returns:
- true if the item contains an equivalent value Item value is considered to be equivalent to the given value if: 1) given value is ID-only container value and item value has the same ID, or 2) comparator is not null and it gives "equals" (0) result when comparing these values, or 3) comparator is null and values match under IGNORE_METADATA_CONSIDER_DIFFERENT_IDS strategy
 
 - 
acceptpublic void accept(Visitor visitor, ItemPath path, boolean recursive) - 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>>
 
 - 
equivalentpublic boolean equivalent(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.- Specified by:
- equivalentin interface- PrismContainer<C extends Containerable>
 
 - 
toStringpublic String toString() - Overrides:
- toStringin class- ItemImpl<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
 
 - 
debugDumppublic String debugDump(int indent) - Specified by:
- debugDumpin interface- DebugDumpable
- Overrides:
- debugDumpin class- ItemImpl<PrismContainerValue<C extends Containerable>,PrismContainerDefinition<C extends Containerable>>
 
 - 
getDebugDumpClassNameprotected String getDebugDumpClassName() Return 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
 
 - 
trimDefinitionTreepublic void trimDefinitionTree(Collection<? extends ItemPath> alwaysKeep) Optimizes (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>
 
 
- 
 
-