Package com.evolveum.midpoint.prism.impl
Class PrismContainerValueImpl<C extends Containerable>
- java.lang.Object
-
- com.evolveum.midpoint.prism.AbstractFreezable
-
- com.evolveum.midpoint.prism.impl.PrismValueImpl
-
- com.evolveum.midpoint.prism.impl.PrismContainerValueImpl<C>
-
- All Implemented Interfaces:
Freezable,MidpointOriginMetadata,ParentVisitable,PathVisitable,PrismContainerValue<C>,PrismContextSensitive,PrismValue,Revivable,Visitable,DebugDumpable,Serializable
- Direct Known Subclasses:
PrismObjectValueImpl
public class PrismContainerValueImpl<C extends Containerable> extends PrismValueImpl implements PrismContainerValue<C>
- Author:
- semancik
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected ComplexTypeDefinitioncomplexTypeDefinitionprotected LinkedHashMap<QName,Item<?,?>>itemsprotected Set<String>unqualifiedItemNames-
Fields inherited from class com.evolveum.midpoint.prism.impl.PrismValueImpl
defaultEquivalenceStrategy, prismContext
-
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
-
Constructor Summary
Constructors Constructor Description PrismContainerValueImpl()PrismContainerValueImpl(C containerable)PrismContainerValueImpl(OriginType type, Objectable source, PrismContainerable container, Long id, ComplexTypeDefinition complexTypeDefinition, PrismContext prismContext)PrismContainerValueImpl(PrismContext prismContext)PrismContainerValueImpl(C containerable, PrismContext prismContext)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(Visitor visitor)voidaccept(Visitor visitor, ItemPath path, boolean recursive)voidacceptParentVisitor(Visitor visitor)<IV extends PrismValue,ID extends ItemDefinition>
voidadd(Item<IV,ID> item)<IV extends PrismValue,ID extends ItemDefinition>
voidadd(Item<IV,ID> item, boolean checkUniqueness)Adds an item to a property container.voidaddAll(Collection<? extends Item<?,?>> itemsToAdd)Adds a collection of items to a property container.voidaddAllReplaceExisting(Collection<? extends Item<?,?>> itemsToAdd)Adds a collection of items to a property container.booleanaddRawElement(Object element)<IV extends PrismValue,ID extends ItemDefinition>
voidaddReplaceExisting(Item<IV,ID> item)Adds an item to a property container.voidapplyDefinition(@NotNull PrismContainerDefinition<C> containerDef, boolean force)voidapplyDefinition(ItemDefinition definition, boolean force)CasContainerable()static <T extends Containerable>
TasContainerable(PrismContainerValue<T> value)CasContainerable(Class<C> requiredClass)static <C extends Containerable>
Collection<C>asContainerables(Collection<PrismContainerValue<C>> pcvs)static <C extends Containerable>
List<C>asContainerables(List<PrismContainerValue<C>> pcvs)static <C extends Containerable>
List<PrismContainerValue<C>>asPrismContainerValues(List<C> containerables)voidassertDefinitions(boolean tolerateRaw, String sourceDescription)voidassertDefinitions(String sourceDescription)PrismContainer<C>asSingleValuedContainer(@NotNull QName itemName)Returns a single-valued container (with a single-valued definition) holding just this value.booleancanRepresent(Class<?> clazz)voidcheckConsistenceInternal(Itemable rootItem, boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope)voidclear()PrismContainerValue<C>clone()Literal clone.PrismContainerValueImpl<C>cloneComplex(CloneStrategy strategy)Complex clone with different cloning strategies.booleancontains(Item item)booleancontains(ItemName itemName)booleancontainsItem(ItemPath path, boolean acceptEmptyItem)static <C extends Containerable>
booleancontainsRealValue(Collection<PrismContainerValue<C>> cvalCollection, PrismContainerValue<C> cval)protected voidcopyValues(CloneStrategy strategy, PrismContainerValueImpl<C> clone)<IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>>
IcreateDetachedSubItem(QName name, Class<I> type, ID itemDefinition, boolean immutable)PrismContainerValue<C>createImmutableClone()<X> PrismProperty<X>createProperty(PrismPropertyDefinition propertyDefinition)<X> PrismProperty<X>createProperty(QName propertyName)StringdebugDump(int indent)protected voiddebugDumpIdentifiers(StringBuilder sb)booleandeleteRawElement(Object element)protected voiddetailedDebugDumpStart(StringBuilder sb)voiddiffMatchingRepresentation(PrismValue otherValue, Collection<? extends ItemDelta> deltas, ParameterizedEquivalenceStrategy strategy)booleanequals(PrismValue other, @NotNull ParameterizedEquivalenceStrategy strategy)booleanequivalent(PrismContainerValue<?> other)Objectfind(ItemPath path)<X extends Containerable>
PrismContainer<X>findContainer(QName containerName)<IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>>
IfindItem(ItemDefinition itemDefinition, Class<I> type)<IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>>
IfindItem(ItemPath itemPath, Class<I> type)<T extends Containerable>
PrismContainer<T>findOrCreateContainer(QName containerName)<IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>>
IfindOrCreateItem(ItemPath path, Class<I> type, ID definition)<IV extends PrismValue,ID extends ItemDefinition>
Item<IV,ID>findOrCreateItem(QName containerName)<IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>>
IfindOrCreateItem(QName containerName, Class<I> type)<X> PrismProperty<X>findOrCreateProperty(ItemPath propertyPath)<X> PrismProperty<X>findOrCreateProperty(PrismPropertyDefinition propertyDef)PrismReferencefindOrCreateReference(QName referenceName)<IV extends PrismValue,ID extends ItemDefinition>
PartiallyResolvedItem<IV,ID>findPartial(ItemPath path)<X> PrismProperty<X>findProperty(ItemPath propertyPath)<X> PrismProperty<X>findProperty(PrismPropertyDefinition<X> propertyDefinition)Finds a specific property in the container by definition.PrismReferencefindReference(QName elementName)PrismReferencefindReferenceByCompositeObjectElementName(QName elementName)@NotNull Collection<PrismValue>getAllValues(ItemPath path)Class<C>getCompileTimeClass()@Nullable ComplexTypeDefinitiongetComplexTypeDefinition()PrismContainer<C>getContainer()PrismContainerDefinition<C>getDefinition()LonggetId()ObjectgetIdentifier()Returns the value of identifier corresponding to the '#' path: container id or object oid.@NotNull Collection<QName>getItemNames()@NotNull Collection<Item<?,?>>getItems()Returns a set of items that the property container contains.<I extends Item<?,?>>
List<I>getItems(Class<I> type)PrismContainerable<C>getParent()@NotNull ItemPathgetPath()protected ObjectgetPathComponent()PrismContextgetPrismContext()PrismContextgetPrismContextLocal()@NotNull Set<PrismProperty<?>>getProperties()Returns a set of properties that the property container contains.<T> TgetPropertyRealValue(QName propertyName, Class<T> type)Class<?>getRealClass()<T> TgetRealValue()PrismContainerValue<?>getRootValue()QNamegetTypeName()CgetValue()booleanhasCompleteDefinition()inthashCode(@NotNull ParameterizedEquivalenceStrategy strategy)booleanhasNoItems()Like isEmpty but ignores presence of container value ID.booleanisEmpty()booleanisIdOnly()booleanisRaw()voidkeepPaths(List<? extends ItemPath> keep)<IV extends PrismValue,ID extends ItemDefinition>
booleanmerge(Item<IV,ID> item)Merges the provided item into this item.voidmergeContent(@NotNull PrismContainerValue<?> other, @NotNull List<QName> overwrite)voidnormalize()voidperformFreeze()voidrecompute(PrismContext prismContext)<IV extends PrismValue,ID extends ItemDefinition>
voidremove(@NotNull Item<IV,ID> item)voidremoveAll()voidremoveContainer(ItemPath path)voidremoveItems(List<? extends ItemPath> itemsToRemove)voidremoveOperationalItems()voidremovePaths(List<? extends ItemPath> remove)voidremoveProperty(ItemPath path)booleanremoveRawElement(Object element)voidremoveReference(ItemPath path)<IV extends PrismValue,ID extends ItemDefinition>
voidreplace(Item<IV,ID> oldItem, Item<IV,ID> newItem)booleanrepresentsSameValue(PrismValue other, boolean lax)Returns true if this and other value represent the same value.voidrevive(PrismContext prismContext)voidsetId(Long id)voidsetOriginTypeRecursive(OriginType originType)Set origin type to all values and subvalues<T> voidsetPropertyRealValue(QName propertyName, T realValue, PrismContext prismContext)intsize()<IV extends PrismValue,ID extends ItemDefinition>
booleansubtract(Item<IV,ID> item)Subtract the provided item from this item.StringtoHumanReadableString()static <T extends Containerable>
List<PrismContainerValue<T>>toPcvList(List<T> beans)StringtoString()-
Methods inherited from class com.evolveum.midpoint.prism.impl.PrismValueImpl
appendOriginDump, applyDefinition, clearParent, copyValues, diff, equals, equals, getOriginObject, getOriginType, getParentContainerValue, getUserData, getUserData, getValueMetadata, hashCode, hashCode, hasValueMetadata, isTransient, recompute, setOriginObject, setOriginType, setParent, setPrismContext, setTransient, setUserData, setValueMetadata, setValueMetadata, setValueMetadata
-
Methods inherited from class com.evolveum.midpoint.prism.AbstractFreezable
freeze, freeze, freezeAll, freezeNullableList, isImmutable, isMutable
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDumpLazily, debugDumpLazily
-
Methods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable, freeze, isImmutable
-
Methods inherited from interface com.evolveum.midpoint.prism.metadata.MidpointOriginMetadata
getOriginObject, getOriginType, setOriginObject, setOriginType
-
Methods inherited from interface com.evolveum.midpoint.prism.PrismContainerValue
findItem
-
Methods inherited from interface com.evolveum.midpoint.prism.PrismValue
applyDefinition, clearParent, diff, equals, getParentContainerValue, getRealValueOrRawType, getUserData, getUserData, getValueMetadata, getValueMetadataAsContainer, hashCode, hasRealClass, hasValueMetadata, isTransient, recompute, setParent, setPrismContext, setTransient, setUserData, setValueMetadata, setValueMetadata, setValueMetadata, valueMetadata
-
-
-
-
Field Detail
-
items
protected final LinkedHashMap<QName,Item<?,?>> items
-
complexTypeDefinition
protected ComplexTypeDefinition complexTypeDefinition
-
-
Constructor Detail
-
PrismContainerValueImpl
public PrismContainerValueImpl()
-
PrismContainerValueImpl
public PrismContainerValueImpl(C containerable)
-
PrismContainerValueImpl
public PrismContainerValueImpl(PrismContext prismContext)
-
PrismContainerValueImpl
public PrismContainerValueImpl(C containerable, PrismContext prismContext)
-
PrismContainerValueImpl
public PrismContainerValueImpl(OriginType type, Objectable source, PrismContainerable container, Long id, ComplexTypeDefinition complexTypeDefinition, PrismContext prismContext)
-
-
Method Detail
-
asContainerable
public static <T extends Containerable> T asContainerable(PrismContainerValue<T> value)
-
getPrismContext
public PrismContext getPrismContext()
- Specified by:
getPrismContextin interfacePrismContextSensitive- Overrides:
getPrismContextin classPrismValueImpl
-
getPrismContextLocal
public PrismContext getPrismContextLocal()
- Specified by:
getPrismContextLocalin interfacePrismContainerValue<C extends Containerable>
-
getItems
@NotNull public @NotNull Collection<Item<?,?>> getItems()
Returns a set of items that the property container contains. The items may be properties or inner property containers.The set may be null. In case there are no properties an empty set is returned.
Returned set is mutable. Live object is returned.
- Specified by:
getItemsin interfacePrismContainerValue<C extends Containerable>- Returns:
- set of items that the property container contains.
-
size
public int size()
- Specified by:
sizein interfacePrismContainerValue<C extends Containerable>
-
getProperties
@NotNull public @NotNull Set<PrismProperty<?>> getProperties()
Returns a set of properties that the property container contains.The set must not be null. In case there are no properties an empty set is returned.
Returned set is immutable! Any change to it will be ignored.
- Specified by:
getPropertiesin interfacePrismContainerValue<C extends Containerable>- Returns:
- set of properties that the property container contains.
-
getId
public Long getId()
- Specified by:
getIdin interfacePrismContainerValue<C extends Containerable>
-
setId
public void setId(Long id)
- Specified by:
setIdin interfacePrismContainerValue<C extends Containerable>
-
getParent
public PrismContainerable<C> getParent()
- Specified by:
getParentin interfacePrismContainerValue<C extends Containerable>- Specified by:
getParentin interfacePrismValue- Overrides:
getParentin classPrismValueImpl
-
getContainer
public PrismContainer<C> getContainer()
- Specified by:
getContainerin interfacePrismContainerValue<C extends Containerable>
-
getPath
@NotNull public @NotNull ItemPath getPath()
- Specified by:
getPathin interfacePrismValue- Overrides:
getPathin classPrismValueImpl
-
getPathComponent
protected Object getPathComponent()
- Overrides:
getPathComponentin classPrismValueImpl
-
getValue
public C getValue()
- Specified by:
getValuein interfacePrismContainerValue<C extends Containerable>
-
asContainerable
@NotNull public C asContainerable()
- Specified by:
asContainerablein interfacePrismContainerValue<C extends Containerable>
-
getCompileTimeClass
public Class<C> getCompileTimeClass()
- Specified by:
getCompileTimeClassin interfacePrismContainerValue<C extends Containerable>
-
canRepresent
public boolean canRepresent(Class<?> clazz)
- Specified by:
canRepresentin interfacePrismContainerValue<C extends Containerable>
-
asContainerable
public C asContainerable(Class<C> requiredClass)
- Specified by:
asContainerablein interfacePrismContainerValue<C extends Containerable>
-
getItemNames
@NotNull public @NotNull Collection<QName> getItemNames()
- Specified by:
getItemNamesin interfacePrismContainerValue<C extends Containerable>
-
add
public <IV extends PrismValue,ID extends ItemDefinition> void add(Item<IV,ID> item) throws SchemaException
- Specified by:
addin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
add
public <IV extends PrismValue,ID extends ItemDefinition> void add(Item<IV,ID> item, boolean checkUniqueness) throws SchemaException
Adds an item to a property container.- Specified by:
addin interfacePrismContainerValue<C extends Containerable>- Parameters:
item- item to add.- Throws:
IllegalArgumentException- an attempt to add value that already existsSchemaException
-
merge
public <IV extends PrismValue,ID extends ItemDefinition> boolean merge(Item<IV,ID> item) throws SchemaException
Merges the provided item into this item. The values are joined together. Returns true if new item or value was added.- Specified by:
mergein interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
subtract
public <IV extends PrismValue,ID extends ItemDefinition> boolean subtract(Item<IV,ID> item) throws SchemaException
Subtract the provided item from this item. The values of the provided item are deleted from this item. Returns true if this item was changed.- Specified by:
subtractin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
addReplaceExisting
public <IV extends PrismValue,ID extends ItemDefinition> void addReplaceExisting(Item<IV,ID> item) throws SchemaException
Adds an item to a property container. Existing value will be replaced.- Specified by:
addReplaceExistingin interfacePrismContainerValue<C extends Containerable>- Parameters:
item- item to add.- Throws:
SchemaException
-
remove
public <IV extends PrismValue,ID extends ItemDefinition> void remove(@NotNull @NotNull Item<IV,ID> item)
- Specified by:
removein interfacePrismContainerValue<C extends Containerable>
-
removeAll
public void removeAll()
- Specified by:
removeAllin interfacePrismContainerValue<C extends Containerable>
-
addAll
public void addAll(Collection<? extends Item<?,?>> itemsToAdd) throws SchemaException
Adds a collection of items to a property container.- Specified by:
addAllin interfacePrismContainerValue<C extends Containerable>- Parameters:
itemsToAdd- items to add- Throws:
IllegalArgumentException- an attempt to add value that already existsSchemaException
-
addAllReplaceExisting
public void addAllReplaceExisting(Collection<? extends Item<?,?>> itemsToAdd) throws SchemaException
Adds a collection of items to a property container. Existing values will be replaced.- Specified by:
addAllReplaceExistingin interfacePrismContainerValue<C extends Containerable>- Parameters:
itemsToAdd- items to add- Throws:
SchemaException
-
replace
public <IV extends PrismValue,ID extends ItemDefinition> void replace(Item<IV,ID> oldItem, Item<IV,ID> newItem) throws SchemaException
- Specified by:
replacein interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
clear
public void clear()
- Specified by:
clearin interfacePrismContainerValue<C extends Containerable>
-
contains
public boolean contains(Item item)
- Specified by:
containsin interfacePrismContainerValue<C extends Containerable>
-
contains
public boolean contains(ItemName itemName)
- Specified by:
containsin interfacePrismContainerValue<C extends Containerable>
-
containsRealValue
public static <C extends Containerable> boolean containsRealValue(Collection<PrismContainerValue<C>> cvalCollection, PrismContainerValue<C> cval)
-
find
public Object find(ItemPath path)
- Specified by:
findin interfacePrismValue
-
findPartial
public <IV extends PrismValue,ID extends ItemDefinition> PartiallyResolvedItem<IV,ID> findPartial(ItemPath path)
- Specified by:
findPartialin interfacePrismContainerValue<C extends Containerable>
-
findProperty
public <X> PrismProperty<X> findProperty(ItemPath propertyPath)
- Specified by:
findPropertyin interfacePrismContainerValue<C extends Containerable>
-
findProperty
public <X> PrismProperty<X> findProperty(PrismPropertyDefinition<X> propertyDefinition)
Finds a specific property in the container by definition.Returns null if nothing is found.
- Specified by:
findPropertyin interfacePrismContainerValue<C extends Containerable>- Parameters:
propertyDefinition- property definition to find.- Returns:
- found property or null
-
findContainer
public <X extends Containerable> PrismContainer<X> findContainer(QName containerName)
- Specified by:
findContainerin interfacePrismContainerValue<C extends Containerable>
-
findReference
public PrismReference findReference(QName elementName)
- Specified by:
findReferencein interfacePrismContainerValue<C extends Containerable>
-
findReferenceByCompositeObjectElementName
public PrismReference findReferenceByCompositeObjectElementName(QName elementName)
- Specified by:
findReferenceByCompositeObjectElementNamein interfacePrismContainerValue<C extends Containerable>
-
findItem
public <IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>> I findItem(ItemPath itemPath, Class<I> type)
- Specified by:
findItemin interfacePrismContainerValue<C extends Containerable>
-
findItem
public <IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>> I findItem(ItemDefinition itemDefinition, Class<I> type)
- Specified by:
findItemin interfacePrismContainerValue<C extends Containerable>
-
containsItem
public boolean containsItem(ItemPath path, boolean acceptEmptyItem) throws SchemaException
- Specified by:
containsItemin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
createDetachedSubItem
public <IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>> I createDetachedSubItem(QName name, Class<I> type, ID itemDefinition, boolean immutable) throws SchemaException
- Specified by:
createDetachedSubItemin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
findOrCreateContainer
public <T extends Containerable> PrismContainer<T> findOrCreateContainer(QName containerName) throws SchemaException
- Specified by:
findOrCreateContainerin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
findOrCreateReference
public PrismReference findOrCreateReference(QName referenceName) throws SchemaException
- Specified by:
findOrCreateReferencein interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
findOrCreateItem
public <IV extends PrismValue,ID extends ItemDefinition> Item<IV,ID> findOrCreateItem(QName containerName) throws SchemaException
- Specified by:
findOrCreateItemin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
findOrCreateItem
public <IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>> I findOrCreateItem(QName containerName, Class<I> type) throws SchemaException
- Specified by:
findOrCreateItemin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
findOrCreateItem
public <IV extends PrismValue,ID extends ItemDefinition,I extends Item<IV,ID>> I findOrCreateItem(ItemPath path, Class<I> type, ID definition) throws SchemaException
- Specified by:
findOrCreateItemin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
findOrCreateProperty
public <X> PrismProperty<X> findOrCreateProperty(ItemPath propertyPath) throws SchemaException
- Specified by:
findOrCreatePropertyin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
findOrCreateProperty
public <X> PrismProperty<X> findOrCreateProperty(PrismPropertyDefinition propertyDef) throws SchemaException
- Specified by:
findOrCreatePropertyin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
createProperty
public <X> PrismProperty<X> createProperty(QName propertyName) throws SchemaException
- Specified by:
createPropertyin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
createProperty
public <X> PrismProperty<X> createProperty(PrismPropertyDefinition propertyDefinition) throws SchemaException
- Specified by:
createPropertyin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
removeProperty
public void removeProperty(ItemPath path)
- Specified by:
removePropertyin interfacePrismContainerValue<C extends Containerable>
-
removeContainer
public void removeContainer(ItemPath path)
- Specified by:
removeContainerin interfacePrismContainerValue<C extends Containerable>
-
removeReference
public void removeReference(ItemPath path)
- Specified by:
removeReferencein interfacePrismContainerValue<C extends Containerable>
-
setPropertyRealValue
public <T> void setPropertyRealValue(QName propertyName, T realValue, PrismContext prismContext) throws SchemaException
- Specified by:
setPropertyRealValuein interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
getPropertyRealValue
public <T> T getPropertyRealValue(QName propertyName, Class<T> type)
- Specified by:
getPropertyRealValuein interfacePrismContainerValue<C extends Containerable>
-
recompute
public void recompute(PrismContext prismContext)
- Specified by:
recomputein interfacePrismContainerValue<C extends Containerable>- Specified by:
recomputein interfacePrismValue- Specified by:
recomputein classPrismValueImpl
-
accept
public void accept(Visitor visitor)
- Specified by:
acceptin interfacePrismContainerValue<C extends Containerable>- Specified by:
acceptin interfacePrismValue- Specified by:
acceptin interfaceVisitable<C extends Containerable>- Overrides:
acceptin classPrismValueImpl
-
accept
public void accept(Visitor visitor, ItemPath path, boolean recursive)
- Specified by:
acceptin interfacePathVisitable- Specified by:
acceptin interfacePrismContainerValue<C extends Containerable>- Specified by:
acceptin interfacePrismValue- Overrides:
acceptin classPrismValueImpl
-
acceptParentVisitor
public void acceptParentVisitor(Visitor visitor)
- Specified by:
acceptParentVisitorin interfaceParentVisitable- Specified by:
acceptParentVisitorin interfacePrismContainerValue<C extends Containerable>
-
hasCompleteDefinition
public boolean hasCompleteDefinition()
- Specified by:
hasCompleteDefinitionin interfacePrismContainerValue<C extends Containerable>
-
representsSameValue
public boolean representsSameValue(PrismValue other, boolean lax)
Description copied from interface:PrismValueReturns true if this and other value represent the same value. E.g. if they have the same IDs, OIDs or it is otherwise know that they "belong together" without a deep examination of the values.- Specified by:
representsSameValuein interfacePrismValue- Overrides:
representsSameValuein classPrismValueImpllax- If we can reasonably assume that the two values belong together even if they don't have the same ID, e.g. if they both belong to single-valued parent items. This is useful e.g. when comparing multi-valued containers. But can cause problems when we want to be sure we are removing the correct value.
-
diffMatchingRepresentation
public void diffMatchingRepresentation(PrismValue otherValue, Collection<? extends ItemDelta> deltas, ParameterizedEquivalenceStrategy strategy)
- Overrides:
diffMatchingRepresentationin classPrismValueImpl
-
isRaw
public boolean isRaw()
- Specified by:
isRawin interfacePrismValue
-
addRawElement
public boolean addRawElement(Object element) throws SchemaException
- Specified by:
addRawElementin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
deleteRawElement
public boolean deleteRawElement(Object element) throws SchemaException
- Specified by:
deleteRawElementin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
removeRawElement
public boolean removeRawElement(Object element)
- Specified by:
removeRawElementin interfacePrismContainerValue<C extends Containerable>
-
getDefinition
public PrismContainerDefinition<C> getDefinition()
- Specified by:
getDefinitionin interfacePrismContainerValue<C extends Containerable>- Overrides:
getDefinitionin classPrismValueImpl
-
applyDefinition
public void applyDefinition(ItemDefinition definition, boolean force) throws SchemaException
- Specified by:
applyDefinitionin interfacePrismContainerValue<C extends Containerable>- Specified by:
applyDefinitionin interfacePrismValue- Overrides:
applyDefinitionin classPrismValueImpl- Throws:
SchemaException
-
applyDefinition
public void applyDefinition(@NotNull @NotNull PrismContainerDefinition<C> containerDef, boolean force) throws SchemaException- Specified by:
applyDefinitionin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
revive
public void revive(PrismContext prismContext) throws SchemaException
- Specified by:
revivein interfaceRevivable- Overrides:
revivein classPrismValueImpl- Throws:
SchemaException
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfacePrismValue
-
hasNoItems
public boolean hasNoItems()
Description copied from interface:PrismContainerValueLike isEmpty but ignores presence of container value ID.- Specified by:
hasNoItemsin interfacePrismContainerValue<C extends Containerable>
-
isIdOnly
public boolean isIdOnly()
- Specified by:
isIdOnlyin interfacePrismContainerValue<C extends Containerable>
-
normalize
public void normalize()
- Specified by:
normalizein interfacePrismValue- Overrides:
normalizein classPrismValueImpl
-
checkConsistenceInternal
public void checkConsistenceInternal(Itemable rootItem, boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope)
- Specified by:
checkConsistenceInternalin interfacePrismValue- Specified by:
checkConsistenceInternalin classPrismValueImpl
-
assertDefinitions
public void assertDefinitions(String sourceDescription) throws SchemaException
- Specified by:
assertDefinitionsin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
assertDefinitions
public void assertDefinitions(boolean tolerateRaw, String sourceDescription) throws SchemaException- Specified by:
assertDefinitionsin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
clone
public PrismContainerValue<C> clone()
Description copied from class:PrismValueImplLiteral clone.- Specified by:
clonein interfacePrismContainerValue<C extends Containerable>- Specified by:
clonein interfacePrismValue- Specified by:
clonein classPrismValueImpl
-
createImmutableClone
public PrismContainerValue<C> createImmutableClone()
- Specified by:
createImmutableClonein interfacePrismContainerValue<C extends Containerable>- Specified by:
createImmutableClonein interfacePrismValue- Overrides:
createImmutableClonein classPrismValueImpl
-
cloneComplex
public PrismContainerValueImpl<C> cloneComplex(CloneStrategy strategy)
Description copied from class:PrismValueImplComplex clone with different cloning strategies.- Specified by:
cloneComplexin interfacePrismContainerValue<C extends Containerable>- Specified by:
cloneComplexin interfacePrismValue- Specified by:
cloneComplexin classPrismValueImpl- See Also:
CloneStrategy
-
copyValues
protected void copyValues(CloneStrategy strategy, PrismContainerValueImpl<C> clone)
-
equals
public boolean equals(PrismValue other, @NotNull @NotNull ParameterizedEquivalenceStrategy strategy)
- Specified by:
equalsin interfacePrismValue- Overrides:
equalsin classPrismValueImpl
-
equivalent
public boolean equivalent(PrismContainerValue<?> other)
- Specified by:
equivalentin interfacePrismContainerValue<C extends Containerable>
-
hashCode
public int hashCode(@NotNull @NotNull ParameterizedEquivalenceStrategy strategy)- Specified by:
hashCodein interfacePrismValue- Overrides:
hashCodein classPrismValueImpl
-
debugDump
public String debugDump(int indent)
- Specified by:
debugDumpin interfaceDebugDumpable
-
debugDumpIdentifiers
protected void debugDumpIdentifiers(StringBuilder sb)
-
detailedDebugDumpStart
protected void detailedDebugDumpStart(StringBuilder sb)
-
toHumanReadableString
public String toHumanReadableString()
- Specified by:
toHumanReadableStringin interfacePrismValue- Specified by:
toHumanReadableStringin classPrismValueImpl
-
getTypeName
public QName getTypeName()
- Specified by:
getTypeNamein interfacePrismValue- Overrides:
getTypeNamein classPrismValueImpl
-
getComplexTypeDefinition
@Nullable public @Nullable ComplexTypeDefinition getComplexTypeDefinition()
- Specified by:
getComplexTypeDefinitionin interfacePrismContainerValue<C extends Containerable>
-
toPcvList
public static <T extends Containerable> List<PrismContainerValue<T>> toPcvList(List<T> beans)
-
performFreeze
public void performFreeze()
- Overrides:
performFreezein classPrismValueImpl
-
getRealClass
public Class<?> getRealClass()
- Specified by:
getRealClassin interfacePrismValue- Specified by:
getRealClassin classPrismValueImpl
-
getRealValue
@NotNull public <T> T getRealValue()
- Specified by:
getRealValuein interfacePrismValue- Specified by:
getRealValuein classPrismValueImpl
-
asSingleValuedContainer
public PrismContainer<C> asSingleValuedContainer(@NotNull @NotNull QName itemName) throws SchemaException
Returns a single-valued container (with a single-valued definition) holding just this value.- Specified by:
asSingleValuedContainerin interfacePrismContainerValue<C extends Containerable>- Parameters:
itemName- Item name for newly-created container.- Throws:
SchemaException
-
mergeContent
@Experimental public void mergeContent(@NotNull @NotNull PrismContainerValue<?> other, @NotNull @NotNull List<QName> overwrite) throws SchemaException
- Specified by:
mergeContentin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
getRootValue
public PrismContainerValue<?> getRootValue()
- Specified by:
getRootValuein interfacePrismContainerValue<C extends Containerable>- Specified by:
getRootValuein interfacePrismValue- Overrides:
getRootValuein classPrismValueImpl
-
asPrismContainerValues
public static <C extends Containerable> List<PrismContainerValue<C>> asPrismContainerValues(List<C> containerables)
-
asContainerables
public static <C extends Containerable> List<C> asContainerables(List<PrismContainerValue<C>> pcvs)
-
asContainerables
public static <C extends Containerable> Collection<C> asContainerables(Collection<PrismContainerValue<C>> pcvs)
-
setOriginTypeRecursive
public void setOriginTypeRecursive(OriginType originType)
Set origin type to all values and subvalues- Specified by:
setOriginTypeRecursivein interfacePrismContainerValue<C extends Containerable>
-
keepPaths
public void keepPaths(List<? extends ItemPath> keep) throws SchemaException
- Specified by:
keepPathsin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
removePaths
public void removePaths(List<? extends ItemPath> remove) throws SchemaException
- Specified by:
removePathsin interfacePrismContainerValue<C extends Containerable>- Throws:
SchemaException
-
getAllValues
@NotNull public @NotNull Collection<PrismValue> getAllValues(ItemPath path)
- Specified by:
getAllValuesin interfacePrismValue- Overrides:
getAllValuesin classPrismValueImpl
-
getIdentifier
public Object getIdentifier()
Returns the value of identifier corresponding to the '#' path: container id or object oid.
-
removeItems
public void removeItems(List<? extends ItemPath> itemsToRemove)
- Specified by:
removeItemsin interfacePrismContainerValue<C extends Containerable>
-
removeOperationalItems
public void removeOperationalItems()
- Specified by:
removeOperationalItemsin interfacePrismContainerValue<C extends Containerable>
-
-