Package com.evolveum.midpoint.prism.impl
Class ItemImpl<V extends PrismValue,D extends ItemDefinition>
- java.lang.Object
-
- com.evolveum.midpoint.prism.AbstractFreezable
-
- com.evolveum.midpoint.prism.impl.ItemImpl<V,D>
-
- All Implemented Interfaces:
Freezable,Item<V,D>,Itemable,ParentVisitable,PathVisitable,PrismContextSensitive,Revivable,Visitable,DebugDumpable,Serializable
- Direct Known Subclasses:
PrismContainerImpl,PrismPropertyImpl,PrismReferenceImpl
public abstract class ItemImpl<V extends PrismValue,D extends ItemDefinition> extends AbstractFreezable implements Item<V,D>
Item is a common abstraction of Property and PropertyContainer.This is supposed to be a superclass for all items. Items are things that can appear in property containers, which generally means only a property and property container itself. Therefore this is in fact superclass for those two definitions.
- Author:
- Radovan Semancik
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected Ddefinitionprotected ItemNameelementNameprotected booleanimmutableprotected booleanincompleteprotected PrismContainerValue<?>parentprotected PrismContextprismContextprotected @NotNull List<V>values-
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaccept(Visitor visitor)voidaccept(Visitor visitor, ItemPath path, boolean recursive)voidacceptParentVisitor(@NotNull Visitor visitor)Accepts a visitor that visits each item/value on the way to the structure root.booleanadd(V newValue, @NotNull EquivalenceStrategy equivalenceStrategy)Adds a value, overwriting existing one(s).booleanaddAll(Collection<V> newValues, @NotNull EquivalenceStrategy strategy)Adds given values, with the same semantics as repeated add(..) calls.voidaddForced(V newValue)Adds a given value with no checks, no definition application, and so on.voidaddIgnoringEquivalents(V newValue)Adds a value, not looking for equivalent values.protected booleanaddInternal(V newValue, boolean checkEquivalents, EquivalenceStrategy equivalenceStrategy)protected booleanaddInternalExecution(V newValue)voidaddRespectingMetadataAndCloning(V value, @NotNull EquivalenceStrategy strategy, EquivalenceStrategy metadataEquivalenceStrategy)Adds a value, respecting the metadata.protected voidappendDebugDumpSuffix(StringBuilder sb)voidapplyDefinition(D definition)voidapplyDefinition(D definition, boolean force)voidassertDefinitions()voidassertDefinitions(boolean tolarateRawValues, String sourceDescription)voidassertDefinitions(String sourceDescription)voidcheckConsistence()voidcheckConsistence(boolean requireDefinitions, boolean prohibitRaw)voidcheckConsistence(boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope)voidcheckConsistence(boolean requireDefinitions, ConsistencyCheckScope scope)voidcheckConsistence(ConsistencyCheckScope scope)voidcheckConsistenceInternal(Itemable rootItem, boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope)protected abstract voidcheckDefinition(D def)voidclear()Removes all values from the item.abstract Item<V,D>clone()Literal clone.protected voidcopyValues(CloneStrategy strategy, ItemImpl clone)Item<V,D>createImmutableClone()StringdebugDump(int indent)ItemDelta<V,D>diff(Item<V,D> other, @NotNull ParameterizedEquivalenceStrategy strategy)Computes a difference (delta) with the specified item using given equivalence strategy.booleanequals(Object obj)Compares this item to the specified object under DEFAULT_FOR_EQUALS (DATA) strategy.booleanequals(Object obj, @NotNull EquivalenceStrategy strategy)Compares this item to the specified object under given strategy.booleanequals(Object obj, @NotNull ParameterizedEquivalenceStrategy parameterizedEquivalenceStrategy)Compares this item to the specified object under given strategy.protected ItemDelta<V,D>fixupDelta(ItemDelta<V,D> delta, Item<V,D> other)@NotNull Collection<PrismValue>getAllValues(ItemPath path)protected StringgetDebugDumpClassName()Return a human readable name of this class suitable for logs.DgetDefinition()Returns applicable definition.ItemNamegetElementName()Returns the name of the item.LonggetHighestId()PrismContainerValue<?>getParent()Returns the parent of this item (if exists).@NotNull ItemPathgetPath()Returns the path of this item (sequence of names from the "root" container or similar object to this item).protected ObjectgetPathComponent()PrismContextgetPrismContext()PrismContextgetPrismContextLocal()@Nullable ObjectgetRealValue()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.<X> XgetRealValue(Class<X> type)Type override, also for compatibility.<X> X[]getRealValuesArray(Class<X> type)Type override, also for compatibility.@NotNull Map<String,Object>getUserData()Returns the "user data", a map that allows attaching arbitrary named data to this item.<T> TgetUserData(String key)Returns the user data for the given key (name).VgetValue()Returns the value, if there is only one.@NotNull List<V>getValues()Returns the values for this item.inthashCode()Computes hash code to be used under DEFAULT_FOR_EQUALS (currently DATA) equivalence strategy.inthashCode(@NotNull EquivalenceStrategy equivalenceStrategy)Computes hash code to be used under given equivalence strategy.inthashCode(@NotNull ParameterizedEquivalenceStrategy equivalenceStrategy)Computes hash code to be used under given equivalence strategy.booleanisIncomplete()Flag that indicates incomplete item.voidmerge(Item<V,D> otherItem)Merge all the values of other item to this item.voidnormalize()voidperformFreeze()protected voidpropagateDeepCloneDefinition(boolean ultraDeep, D clonedDefinition, Consumer<ItemDefinition> postCloneAction)voidrecomputeAllValues()Re-apply PolyString (and possible other) normalizations to the object.Vremove(int index)booleanremove(V value, @NotNull EquivalenceStrategy strategy)Removes values equivalent to given value from the item; under specified equivalence strategy OR when values represent the same value via "representsSameValue(.., lax=false)" method.booleanremoveAll(Collection<V> newValues, @NotNull EquivalenceStrategy strategy)Removes all given values from the item.voidremoveRespectingMetadata(V value, @NotNull EquivalenceStrategy strategy, EquivalenceStrategy metadataEquivalenceStrategy)Removes values equivalent to given value from the item; under specified equivalence strategy OR when values represent the same value via "representsSameValue(.., lax=false)" method.voidreplace(V newValue)Replaces all values of the item by given value.voidreplaceAll(Collection<V> newValues, @NotNull EquivalenceStrategy strategy)Replaces all values of the item by given values.voidrevive(PrismContext prismContext)voidsetDefinition(D definition)Sets applicable property definition.voidsetElementName(QName elementName)Sets the name of the item.voidsetIncomplete(boolean incomplete)Flags the item as incomplete.voidsetParent(PrismContainerValue<?> parentValue)Sets the parent of this item.voidsetPrismContext(PrismContext prismContext)voidsetUserData(String key, Object value)Sets the user data for the given key (name).StringtoString()-
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.Item
add, addAll, cloneComplex, contains, contains, copy, createDelta, createDelta, diff, filterValues, filterYields, find, findPartial, findValue, findValue, getAnyValue, getAnyValue, getClonedValues, getDisplayName, getHelp, getRealValues, getRealValuesOrRawTypes, hasAnyValue, hasCompleteDefinition, hasNoValues, hasRaw, isEmpty, isOperational, isRaw, isSingleValue, isSingleValueByDefinition, remove, removeIf, size, valuesStream
-
-
-
-
Field Detail
-
elementName
protected ItemName elementName
-
parent
protected PrismContainerValue<?> parent
-
definition
protected D extends ItemDefinition definition
-
values
@NotNull protected final @NotNull List<V extends PrismValue> values
-
immutable
protected boolean immutable
-
incomplete
protected boolean incomplete
-
prismContext
protected transient PrismContext prismContext
-
-
Method Detail
-
getDefinition
public D getDefinition()
Description copied from interface:ItemReturns applicable definition.May return null if no definition is applicable or the definition is not known.
- Specified by:
getDefinitionin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Specified by:
getDefinitionin interfaceItemable- Returns:
- applicable definition
-
getElementName
public ItemName getElementName()
Description copied from interface:ItemReturns the name of the item.The name is a QName. It uniquely defines an item.
The name may be null, but such an item will not work.
The name is the QName of XML element in the XML representation.
- Specified by:
getElementNamein interfaceItem<V extends PrismValue,D extends ItemDefinition>- Specified by:
getElementNamein interfaceItemable- Returns:
- item name TODO consider making element name obligatory
-
setElementName
public void setElementName(QName elementName)
Description copied from interface:ItemSets the name of the item.The name is a QName. It uniquely defines an item.
The name may be null, but such an item will not work.
The name is the QName of XML element in the XML representation.
- Specified by:
setElementNamein interfaceItem<V extends PrismValue,D extends ItemDefinition>- Parameters:
elementName- the name to set TODO consider removing this method
-
setDefinition
public void setDefinition(D definition)
Sets applicable property definition.- Specified by:
setDefinitionin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Parameters:
definition- the definition to set
-
isIncomplete
public boolean isIncomplete()
Description copied from interface:ItemFlag that indicates incomplete item. If set to true then the values in this item are not complete. If this flag is true then it can be assumed that the object that this item represents has at least one value. This is a method how to indicate that the item really has some values, but are not here. This may be used for variety of purposes. It may indicate that the account has a password, but the password value is not revealed. This may indicate that a user has a photo, but the photo was not requested and therefore is not returned. This may be used to indicate that only part of the attribute values were returned from the search. And so on.- Specified by:
isIncompletein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
setIncomplete
public void setIncomplete(boolean incomplete)
Description copied from interface:ItemFlags the item as incomplete.- Specified by:
setIncompletein interfaceItem<V extends PrismValue,D extends ItemDefinition>- Parameters:
incomplete- The new value- See Also:
FIXME: Should be package-visible to implementation
-
getPrismContext
public PrismContext getPrismContext()
- Specified by:
getPrismContextin interfacePrismContextSensitive
-
getPrismContextLocal
public PrismContext getPrismContextLocal()
- Specified by:
getPrismContextLocalin interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
setPrismContext
public void setPrismContext(PrismContext prismContext)
- Specified by:
setPrismContextin interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
getParent
public PrismContainerValue<?> getParent()
Description copied from interface:ItemReturns the parent of this item (if exists). Currently this has to be a PrismContainerValue.- Specified by:
getParentin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Returns:
- The parent if exists
-
setParent
public void setParent(PrismContainerValue<?> parentValue)
Description copied from interface:ItemSets the parent of this item.- Specified by:
setParentin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Parameters:
parentValue- The new parent
-
getPathComponent
protected Object getPathComponent()
-
getRealValue
@Nullable public @Nullable Object getRealValue()
Description copied from interface:ItemReturns the "real value" (content) of this item: - value contained in PrismPropertyValue - Referencable in PrismReferenceValue - Containerable in PrismContainerValue - Objectable in PrismObjectValue Note that the real value can contain operational items. It can also contain container IDs (although they are not considered to be part of the real value). It does not contain information about item element name nor other metadata like origin, definition, etc. (Although e.g. Containerable can be converted back into PrismContainerValue that can be used to retrieve this information.)- Specified by:
getRealValuein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
getRealValue
public <X> X getRealValue(Class<X> type)
Type override, also for compatibility.- Specified by:
getRealValuein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
getRealValuesArray
public <X> X[] getRealValuesArray(Class<X> type)
Type override, also for compatibility.- Specified by:
getRealValuesArrayin interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
getPath
@NotNull public @NotNull ItemPath getPath()
Description copied from interface:ItemReturns the path of this item (sequence of names from the "root" container or similar object to this item). Note that if the containing object is a delta (usually a container delta), then the path- Specified by:
getPathin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Specified by:
getPathin interfaceItemable- Returns:
- the path
-
acceptParentVisitor
public void acceptParentVisitor(@NotNull @NotNull Visitor visitor)Description copied from interface:ItemAccepts a visitor that visits each item/value on the way to the structure root.- Specified by:
acceptParentVisitorin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Specified by:
acceptParentVisitorin interfaceParentVisitable
-
getUserData
@NotNull public @NotNull Map<String,Object> getUserData()
Description copied from interface:ItemReturns the "user data", a map that allows attaching arbitrary named data to this item.- Specified by:
getUserDatain interfaceItem<V extends PrismValue,D extends ItemDefinition>- Returns:
- the user data map
-
getUserData
public <T> T getUserData(String key)
Description copied from interface:ItemReturns the user data for the given key (name).- Specified by:
getUserDatain interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
setUserData
public void setUserData(String key, Object value)
Description copied from interface:ItemSets the user data for the given key (name).- Specified by:
setUserDatain interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
getValues
@NotNull public @NotNull List<V> getValues()
Description copied from interface:ItemReturns the values for this item. Although the ordering of this values is not important, and each value should be present at most once, we currently return them as a list instead of a set. TODO reconsider this- Specified by:
getValuesin interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
getValue
public V getValue()
Description copied from interface:ItemReturns the value, if there is only one. Throws exception if there are more values. If there is no value, this method either: - returns null (for properties) - throws an exception (for items that can hold multiple values) - creates an empty value (for containers and references). TODO think again whether getOrCreateValue would not be better- Specified by:
getValuein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
addAll
public boolean addAll(Collection<V> newValues, @NotNull @NotNull EquivalenceStrategy strategy) throws SchemaException
Description copied from interface:ItemAdds given values, with the same semantics as repeated add(..) calls. For equality testing uses given strategy.- Specified by:
addAllin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Returns:
- true if this item changed as a result of the call (i.e. if at least one value was really added)
- Throws:
SchemaException
-
add
public boolean add(@NotNull V newValue, @NotNull @NotNull EquivalenceStrategy equivalenceStrategy) throws SchemaExceptionDescription copied from interface:ItemAdds a value, overwriting existing one(s). Uses specified equivalence strategy.- Specified by:
addin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Returns:
- true if this item changed as a result of the call. This is either during real value addition or during overwriting existing value with a different one. The "difference" is taken using the DEFAULT_FOR_EQUALS (DATA) equivalence strategy.
- Throws:
SchemaException
-
addIgnoringEquivalents
public void addIgnoringEquivalents(@NotNull V newValue) throws SchemaExceptionDescription copied from interface:ItemAdds a value, not looking for equivalent values. (This means that the new value is always added, if possible.) Note that we check the cardinality of the item according to its definition, i.e. we do not allow single-valued item to contain more than one value.- Specified by:
addIgnoringEquivalentsin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Throws:
SchemaException
-
addInternal
@Contract("_, true, null -> fail; _, false, !null -> fail") protected boolean addInternal(@NotNull V newValue, boolean checkEquivalents, EquivalenceStrategy equivalenceStrategy) throws SchemaException- Throws:
SchemaException
-
addInternalExecution
protected boolean addInternalExecution(@NotNull V newValue)
-
addForced
@Experimental public void addForced(@NotNull V newValue)
Adds a given value with no checks, no definition application, and so on. For internal use only.
-
addRespectingMetadataAndCloning
public void addRespectingMetadataAndCloning(V value, @NotNull @NotNull EquivalenceStrategy strategy, EquivalenceStrategy metadataEquivalenceStrategy) throws SchemaException
Description copied from interface:ItemAdds a value, respecting the metadata. I.e. if equivalent value exists, the metadata are merged. (Replacing metadata of colliding provenance, adding all the others.) If a value is to be added as a whole, it is cloned.- Specified by:
addRespectingMetadataAndCloningin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Throws:
SchemaException
-
removeRespectingMetadata
public void removeRespectingMetadata(V value, @NotNull @NotNull EquivalenceStrategy strategy, EquivalenceStrategy metadataEquivalenceStrategy)
Description copied from interface:ItemRemoves values equivalent to given value from the item; under specified equivalence strategy OR when values represent the same value via "representsSameValue(.., lax=false)" method. Respects metadata, i.e. if value to be removed has metadata specified, this method removes only particular metadata. Only if this means that all metadata are gone, then the value is deleted.- Specified by:
removeRespectingMetadatain interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
removeAll
public boolean removeAll(Collection<V> newValues, @NotNull @NotNull EquivalenceStrategy strategy)
Description copied from interface:ItemRemoves all given values from the item. It is basically a shortcut for repeatedItem.remove(PrismValue, EquivalenceStrategy)call.- Specified by:
removeAllin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Returns:
- true if this item changed as a result of the call (i.e. if at least one value was really removed)
-
remove
public boolean remove(V value, @NotNull @NotNull EquivalenceStrategy strategy)
Description copied from interface:ItemRemoves values equivalent to given value from the item; under specified equivalence strategy OR when values represent the same value via "representsSameValue(.., lax=false)" method.- Specified by:
removein interfaceItem<V extends PrismValue,D extends ItemDefinition>- Returns:
- true if this item changed as a result of the call (i.e. if at least one value was really removed)
-
remove
public V remove(int index)
-
replaceAll
public void replaceAll(Collection<V> newValues, @NotNull @NotNull EquivalenceStrategy strategy) throws SchemaException
Description copied from interface:ItemReplaces all values of the item by given values.- Specified by:
replaceAllin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Throws:
SchemaException
-
replace
public void replace(V newValue) throws SchemaException
Description copied from interface:ItemReplaces all values of the item by given value.- Specified by:
replacein interfaceItem<V extends PrismValue,D extends ItemDefinition>- Throws:
SchemaException
-
clear
public void clear()
Description copied from interface:ItemRemoves all values from the item.- Specified by:
clearin interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
normalize
public void normalize()
- Specified by:
normalizein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
merge
public void merge(Item<V,D> otherItem) throws SchemaException
Merge all the values of other item to this item.- Specified by:
mergein interfaceItem<V extends PrismValue,D extends ItemDefinition>- Throws:
SchemaException
-
diff
public ItemDelta<V,D> diff(Item<V,D> other, @NotNull @NotNull ParameterizedEquivalenceStrategy strategy)
Description copied from interface:ItemComputes a difference (delta) with the specified item using given equivalence strategy. Note this method cannot accept general EquivalenceStrategy here; it needs the parameterized strategy. Compares item values only -- does NOT dive into lower levels.- Specified by:
diffin interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
accept
public void accept(Visitor visitor)
- Specified by:
acceptin interfaceVisitable<V extends PrismValue>
-
accept
public void accept(Visitor visitor, ItemPath path, boolean recursive)
- Specified by:
acceptin interfacePathVisitable
-
recomputeAllValues
public void recomputeAllValues()
Re-apply PolyString (and possible other) normalizations to the object.- Specified by:
recomputeAllValuesin interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
applyDefinition
public void applyDefinition(D definition) throws SchemaException
- Specified by:
applyDefinitionin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Throws:
SchemaException
-
applyDefinition
public void applyDefinition(D definition, boolean force) throws SchemaException
- Specified by:
applyDefinitionin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Throws:
SchemaException
-
revive
public void revive(PrismContext prismContext) throws SchemaException
- Specified by:
revivein interfaceRevivable- Throws:
SchemaException
-
copyValues
protected void copyValues(CloneStrategy strategy, ItemImpl clone)
-
propagateDeepCloneDefinition
protected void propagateDeepCloneDefinition(boolean ultraDeep, D clonedDefinition, Consumer<ItemDefinition> postCloneAction)
-
checkConsistence
public void checkConsistence(boolean requireDefinitions, ConsistencyCheckScope scope)- Specified by:
checkConsistencein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
checkConsistence
public void checkConsistence(boolean requireDefinitions, boolean prohibitRaw)- Specified by:
checkConsistencein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
checkConsistence
public void checkConsistence(boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope)- Specified by:
checkConsistencein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
checkConsistence
public void checkConsistence()
- Specified by:
checkConsistencein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
checkConsistence
public void checkConsistence(ConsistencyCheckScope scope)
- Specified by:
checkConsistencein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
checkConsistenceInternal
public void checkConsistenceInternal(Itemable rootItem, boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope)
- Specified by:
checkConsistenceInternalin interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
checkDefinition
protected abstract void checkDefinition(D def)
-
assertDefinitions
public void assertDefinitions() throws SchemaException- Specified by:
assertDefinitionsin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Throws:
SchemaException
-
assertDefinitions
public void assertDefinitions(String sourceDescription) throws SchemaException
- Specified by:
assertDefinitionsin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Throws:
SchemaException
-
assertDefinitions
public void assertDefinitions(boolean tolarateRawValues, String sourceDescription) throws SchemaException- Specified by:
assertDefinitionsin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Throws:
SchemaException
-
hashCode
public int hashCode(@NotNull @NotNull EquivalenceStrategy equivalenceStrategy)Description copied from interface:ItemComputes hash code to be used under given equivalence strategy.- Specified by:
hashCodein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
hashCode
public int hashCode(@NotNull @NotNull ParameterizedEquivalenceStrategy equivalenceStrategy)Description copied from interface:ItemComputes hash code to be used under given equivalence strategy.- Specified by:
hashCodein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
hashCode
public int hashCode()
Description copied from interface:ItemComputes hash code to be used under DEFAULT_FOR_EQUALS (currently DATA) equivalence strategy.- Specified by:
hashCodein interfaceItem<V extends PrismValue,D extends ItemDefinition>- Overrides:
hashCodein classObject
-
equals
public boolean equals(Object obj, @NotNull @NotNull EquivalenceStrategy strategy)
Description copied from interface:ItemCompares this item to the specified object under given strategy.- Specified by:
equalsin interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
equals
public boolean equals(Object obj, @NotNull @NotNull ParameterizedEquivalenceStrategy parameterizedEquivalenceStrategy)
Description copied from interface:ItemCompares this item to the specified object under given strategy.- Specified by:
equalsin interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
equals
public boolean equals(Object obj)
Description copied from interface:ItemCompares this item to the specified object under DEFAULT_FOR_EQUALS (DATA) strategy.- Specified by:
equalsin interfaceItem<V extends PrismValue,D extends ItemDefinition>- Overrides:
equalsin classObject
-
debugDump
public String debugDump(int indent)
- Specified by:
debugDumpin interfaceDebugDumpable
-
getDebugDumpClassName
protected String getDebugDumpClassName()
Return a human readable name of this class suitable for logs.
-
appendDebugDumpSuffix
protected void appendDebugDumpSuffix(StringBuilder sb)
-
performFreeze
public void performFreeze()
- Overrides:
performFreezein classAbstractFreezable
-
getAllValues
@NotNull public @NotNull Collection<PrismValue> getAllValues(ItemPath path)
- Specified by:
getAllValuesin interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
clone
public abstract Item<V,D> clone()
Description copied from interface:ItemLiteral clone.- Specified by:
clonein interfaceItem<V extends PrismValue,D extends ItemDefinition>- Overrides:
clonein classObject
-
createImmutableClone
public Item<V,D> createImmutableClone()
- Specified by:
createImmutableClonein interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
getHighestId
public Long getHighestId()
- Specified by:
getHighestIdin interfaceItem<V extends PrismValue,D extends ItemDefinition>
-
-