Package com.evolveum.midpoint.prism.impl
Class PrismObjectImpl<O extends Objectable>
java.lang.Object
com.evolveum.midpoint.prism.AbstractFreezable
com.evolveum.midpoint.prism.impl.ItemImpl<PrismContainerValue<C>,PrismContainerDefinition<C>>
 
com.evolveum.midpoint.prism.impl.PrismContainerImpl<O>
com.evolveum.midpoint.prism.impl.PrismObjectImpl<O>
- All Implemented Interfaces:
- Freezable,- Item<PrismContainerValue<O>,,- PrismContainerDefinition<O>> - Itemable,- ItemDefinitionTransformer.TransformableItem,- ParentVisitable,- PathVisitable,- PrismContainer<O>,- PrismContainerable<O>,- PrismContextSensitive,- PrismObject<O>,- Revivable,- Visitable,- DebugDumpable,- Serializable
public class PrismObjectImpl<O extends Objectable>
extends PrismContainerImpl<O>
implements PrismObject<O>
Common supertype for all identity objects. Defines basic properties that each
 object must have to live in our system (identifier, name).
 Objects consists of identifier and name (see definition below) and a set of
 properties represented as XML elements in the object's body. The attributes
 are represented as first-level XML elements (tags) of the object XML
 representation and may be also contained in other tags (e.g. extension,
 attributes). The QName (namespace and local name) of the element holding the
 property is considered to be a property name.
 This class is named PrismObject instead of Object to avoid confusion with
 java.lang.Object.
- Author:
- Radovan Semancik Class invariant: has at most one value (potentially empty). When making this object immutable and there's no value, we create one; in order to prevent exceptions on later getValue calls.
- See Also:
- 
Field SummaryFields inherited from class com.evolveum.midpoint.prism.impl.PrismContainerImplcompileTimeClassFields inherited from class com.evolveum.midpoint.prism.impl.ItemImpldefinition, elementName, incomplete, parent, valuesFields inherited from interface com.evolveum.midpoint.util.DebugDumpableINDENT_STRING
- 
Constructor SummaryConstructorsConstructorDescriptionPrismObjectImpl(QName name, PrismObjectDefinition<O> definition, PrismContext prismContext) PrismObjectImpl(QName name, Class<O> compileTimeClass) PrismObjectImpl(QName name, Class<O> compileTimeClass, PrismContext prismContext) PrismObjectImpl(QName name, Class<O> compileTimeClass, PrismContext prismContext, PrismObjectValue<O> value) PrismObjectImpl(QName name, Class<O> compileTimeClass, PrismObjectValue<O> value) 
- 
Method SummaryModifier and TypeMethodDescription<I extends Item<?,?>> 
 voidaddExtensionItem(I item) protected booleanaddInternal(@NotNull PrismContainerValue newValue, boolean checkEquivalents, EquivalenceStrategy strategy) voidaddReplaceExisting(Item<?, ?> item) protected voidvoidapplyDefinition(PrismContainerDefinition<O> definition) static <T extends Objectable>
 @NotNull List<T>asObjectableList(@NotNull List<PrismObjectImpl<T>> objects) voidcheckConsistenceInternal(Itemable rootItem, boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope) clone()Literal clone.cloneComplex(CloneStrategy strategy) Complex clone with different cloning strategies.protected voidcopyValues(CloneStrategy strategy, PrismObjectImpl<O> clone) createDelta(ChangeType changeType) deepCloneDefinition(@NotNull DeepCloneOperation operation) @NotNull ObjectDelta<O>diff(PrismObject<O> other) @NotNull ObjectDelta<O>diff(PrismObject<O> other, ParameterizedEquivalenceStrategy strategy) <I extends Item<?,?>> 
 IfindExtensionItem(@NotNull QName elementName) <I extends Item<?,?>> 
 IfindExtensionItem(String elementLocalName) Return display name intended for business users of midPointprotected StringReturn a human readable name of this class suitable for logs.Returns applicable property container definition.getName()getOid()Returns Object ID (OID).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 Object@NotNull PrismObjectValue<O>getValue()Returns the value, if there is only one.Collection<? extends ItemDelta<?,?>> narrowModifications(Collection<? extends ItemDelta<?, ?>> modifications, @NotNull ParameterizedEquivalenceStrategy plusStrategy, @NotNull ParameterizedEquivalenceStrategy minusStrategy, boolean assumeMissingItems) See description ofItemDelta.narrow(PrismObject, Comparator, Comparator, boolean)method.void<IV extends PrismValue,ID extends ItemDefinition<?>, I extends Item<IV, ID>> 
 voidremoveItem(ItemPath path, Class<I> itemType) voidvoidsetParent(PrismContainerValue<?> parentValue) Sets the parent of this item.voidsetValue(@NotNull PrismContainerValue<O> value) voidsetVersion(String version) Returns short string representing identity of this object.Returns short string identification of object type.toString()Methods inherited from class com.evolveum.midpoint.prism.impl.PrismContainerImplaccept, add, addInternalExecution, assertDefinitions, canRepresent, canRepresent, checkDefinition, containsItem, copyValues, createDelta, createDelta, createParentIfNeeded, debugDump, diff, diff, diffModifications, equivalent, find, findContainer, findContainer, findCreateItem, findCreateItem, findItem, findItem, findItem, findOrCreateContainer, findOrCreateItem, findOrCreateItem, findOrCreateProperty, findOrCreateReference, findPartial, findProperty, findReference, findValue, getAllItems, getAllValues, getCompileTimeClass, getPropertyRealValue, getRealValue, getRealValues, getValue, hasCompleteDefinition, isEmpty, mergeValue, mergeValues, mergeValues, propagateDeepCloneDefinition, remove, removeContainer, removeProperty, removeReference, setContainerRealValue, setDefinition, setPropertyRealValue, setPropertyRealValues, setRealValue, trim, trimDefinitionTreeMethods inherited from class com.evolveum.midpoint.prism.impl.ItemImplaccept, acceptParentVisitor, add, addAll, addForced, addIgnoringEquivalents, addRespectingMetadataAndCloning, applyDefinition, assertDefinitions, assertDefinitions, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkConsistence, clear, copyValues, diff, equals, equals, equals, fixupDelta, getElementName, getHighestId, getPrismContext, getPrismContextLocal, getRealValue, getRealValuesArray, getUserData, getUserData, getValues, hashCode, hashCode, hashCode, isIncomplete, merge, normalize, recomputeAllValues, remove, remove, removeAll, removeRespectingMetadata, replace, replaceAll, revive, setElementName, setIncomplete, setPrismContext, setUserData, transformDefinition, valueRemovedMethods inherited from class com.evolveum.midpoint.prism.AbstractFreezablefreeze, freeze, freezeAll, freezeNullableList, isImmutable, isMutableMethods inherited from class java.lang.Objectfinalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.evolveum.midpoint.util.DebugDumpabledebugDump, debugDump, debugDumpLazily, debugDumpLazilyMethods inherited from interface com.evolveum.midpoint.prism.FreezablecheckImmutable, checkMutable, freeze, isImmutableMethods inherited from interface com.evolveum.midpoint.prism.ItemacceptParentVisitor, add, add, addAll, addAll, addIgnoringEquivalents, addRespectingMetadataAndCloning, applyDefinition, assertDefinitions, assertDefinitions, assertDefinitions, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkConsistence, clear, contains, contains, copy, diff, diff, equals, equals, equals, filterValues, filterYields, find, findValue, findValue, getAllItems, getAllValues, getAnyValue, getAnyValue, getClonedValues, getDisplayName, getElementName, getHelp, getHighestId, getPrismContextLocal, getRealValue, getRealValuesArray, getRealValuesOrRawTypes, getUserData, getUserData, hasAnyValue, hasCompleteDefinition, hashCode, hashCode, hashCode, hasNoValues, hasRaw, isEmpty, isIncomplete, isOperational, isRaw, isSingleValue, isSingleValueByDefinition, merge, normalize, recomputeAllValues, remove, remove, removeAll, removeIf, removeRespectingMetadata, replace, replaceAll, setElementName, setIncomplete, setPrismContext, setUserData, size, valuesStreamMethods inherited from interface com.evolveum.midpoint.prism.PrismContaineraccept, add, canRepresent, canRepresent, containsItem, createDelta, createDelta, diff, diff, diffModifications, findContainer, findCreateItem, findCreateItem, findItem, findItem, findItem, findOrCreateContainer, findOrCreateItem, findOrCreateItem, findOrCreateProperty, findOrCreateReference, findPartial, findProperty, findReference, findValue, getCompileTimeClass, getPropertyRealValue, getRealValue, getRealValues, getValue, getValues, mergeValue, mergeValues, mergeValues, remove, removeContainer, removeProperty, removeReference, setContainerRealValue, setDefinition, setPropertyRealValue, setPropertyRealValues, setRealValue, trim, trimDefinitionTreeMethods inherited from interface com.evolveum.midpoint.prism.PrismContainerablegetComplexTypeDefinitionMethods inherited from interface com.evolveum.midpoint.prism.PrismContextSensitivegetPrismContextMethods inherited from interface com.evolveum.midpoint.prism.PrismObjectequivalent, isOfType
- 
Constructor Details- 
PrismObjectImpl
- 
PrismObjectImpl
- 
PrismObjectImplpublic PrismObjectImpl(QName name, Class<O> compileTimeClass, PrismContext prismContext, PrismObjectValue<O> value) 
- 
PrismObjectImpl
- 
PrismObjectImpl
 
- 
- 
Method Details- 
createNewValue- Specified by:
- createNewValuein interface- PrismContainer<O extends Objectable>
- Specified by:
- createNewValuein interface- PrismObject<O extends Objectable>
- Overrides:
- createNewValuein class- PrismContainerImpl<O extends Objectable>
 
- 
getValueDescription copied from interface:ItemReturns the value, if there is only one. Throws exception if there are more values. If there is no value, this method either: - returns null (for properties) - throws an exception (for items that can hold multiple values) - creates an empty value (for containers and references). TODO think again whether getOrCreateValue would not be better- Specified by:
- getValuein interface- Item<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Specified by:
- getValuein interface- PrismContainer<O extends Objectable>
- Specified by:
- getValuein interface- PrismObject<O extends Objectable>
- Overrides:
- getValuein class- PrismContainerImpl<O extends Objectable>
 
- 
setValue- Specified by:
- setValuein interface- PrismContainer<O extends Objectable>
- Specified by:
- setValuein interface- PrismObject<O extends Objectable>
- Overrides:
- setValuein class- PrismContainerImpl<O extends Objectable>
- Throws:
- SchemaException
 
- 
addInternalprotected boolean addInternal(@NotNull @NotNull PrismContainerValue newValue, boolean checkEquivalents, EquivalenceStrategy strategy) throws SchemaException - Overrides:
- addInternalin class- PrismContainerImpl<O extends Objectable>
- Throws:
- SchemaException
 
- 
getOidReturns Object ID (OID). May return null if the object does not have an OID.- Specified by:
- getOidin interface- PrismObject<O extends Objectable>
- Returns:
- Object ID (OID)
 
- 
setOid- Specified by:
- setOidin interface- PrismObject<O extends Objectable>
 
- 
getVersion- Specified by:
- getVersionin interface- PrismObject<O extends Objectable>
 
- 
setVersion- Specified by:
- setVersionin interface- PrismObject<O extends Objectable>
 
- 
getDefinitionDescription copied from class:PrismContainerImplReturns applicable property container definition.May return null if no definition is applicable or the definition is not know. - Specified by:
- getDefinitionin interface- Item<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Specified by:
- getDefinitionin interface- Itemable
- Specified by:
- getDefinitionin interface- PrismContainer<O extends Objectable>
- Specified by:
- getDefinitionin interface- PrismContainerable<O extends Objectable>
- Specified by:
- getDefinitionin interface- PrismObject<O extends Objectable>
- Overrides:
- getDefinitionin class- PrismContainerImpl<O extends Objectable>
- Returns:
- applicable property container definition
 
- 
asObjectable- Specified by:
- asObjectablein interface- PrismObject<O extends Objectable>
 
- 
getName- Specified by:
- getNamein interface- PrismObject<O extends Objectable>
 
- 
getExtension- Specified by:
- getExtensionin interface- PrismObject<O extends Objectable>
 
- 
getOrCreateExtension- Specified by:
- getOrCreateExtensionin interface- PrismObject<O extends Objectable>
- Throws:
- SchemaException
 
- 
getExtensionContainerValue- Specified by:
- getExtensionContainerValuein interface- PrismObject<O extends Objectable>
 
- 
findExtensionItem- Specified by:
- findExtensionItemin interface- PrismObject<O extends Objectable>
 
- 
findExtensionItem- Specified by:
- findExtensionItemin interface- PrismObject<O extends Objectable>
 
- 
addExtensionItem- Specified by:
- addExtensionItemin interface- PrismObject<O extends Objectable>
- Throws:
- SchemaException
 
- 
createExtension- Specified by:
- createExtensionin interface- PrismObject<O extends Objectable>
- Throws:
- SchemaException
 
- 
applyDefinition- Specified by:
- applyDefinitionin interface- Item<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Specified by:
- applyDefinitionin interface- PrismContainer<O extends Objectable>
- Specified by:
- applyDefinitionin interface- PrismObject<O extends Objectable>
- Overrides:
- applyDefinitionin class- PrismContainerImpl<O extends Objectable>
- Throws:
- SchemaException
 
- 
removeItempublic <IV extends PrismValue,ID extends ItemDefinition<?>, void removeItemI extends Item<IV, ID>> (ItemPath path, Class<I> itemType) - Specified by:
- removeItemin interface- PrismContainer<O extends Objectable>
- Specified by:
- removeItemin interface- PrismObject<O extends Objectable>
- Overrides:
- removeItemin class- PrismContainerImpl<O extends Objectable>
 
- 
addReplaceExisting- Specified by:
- addReplaceExistingin interface- PrismObject<O extends Objectable>
- Throws:
- SchemaException
 
- 
cloneDescription copied from interface:ItemLiteral clone.- Specified by:
- clonein interface- Item<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Specified by:
- clonein interface- PrismContainer<O extends Objectable>
- Specified by:
- clonein interface- PrismObject<O extends Objectable>
- Overrides:
- clonein class- PrismContainerImpl<O extends Objectable>
 
- 
createImmutableClone- Specified by:
- createImmutableClonein interface- Item<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Specified by:
- createImmutableClonein interface- PrismContainer<O extends Objectable>
- Specified by:
- createImmutableClonein interface- PrismObject<O extends Objectable>
- Overrides:
- createImmutableClonein class- PrismContainerImpl<O extends Objectable>
 
- 
cloneComplexDescription copied from interface:ItemComplex clone with different cloning strategies.- Specified by:
- cloneComplexin interface- Item<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Specified by:
- cloneComplexin interface- PrismContainer<O extends Objectable>
- Specified by:
- cloneComplexin interface- PrismObject<O extends Objectable>
- Overrides:
- cloneComplexin class- PrismContainerImpl<O extends Objectable>
- See Also:
 
- 
copyValues
- 
deepCloneDefinition- Specified by:
- deepCloneDefinitionin interface- PrismContainer<O extends Objectable>
- Specified by:
- deepCloneDefinitionin interface- PrismObject<O extends Objectable>
- Overrides:
- deepCloneDefinitionin class- PrismContainerImpl<O extends Objectable>
 
- 
diff- Specified by:
- diffin interface- PrismObject<O extends Objectable>
 
- 
diff@NotNull public @NotNull ObjectDelta<O> diff(PrismObject<O> other, ParameterizedEquivalenceStrategy strategy) - Specified by:
- diffin interface- PrismObject<O extends Objectable>
 
- 
narrowModificationspublic Collection<? extends ItemDelta<?,?>> narrowModifications(Collection<? extends ItemDelta<?, ?>> modifications, @NotNull @NotNull ParameterizedEquivalenceStrategy plusStrategy, @NotNull @NotNull ParameterizedEquivalenceStrategy minusStrategy, boolean assumeMissingItems) Description copied from interface:PrismObjectSee description ofItemDelta.narrow(PrismObject, Comparator, Comparator, boolean)method.- Specified by:
- narrowModificationsin interface- PrismObject<O extends Objectable>
 
- 
createDelta- Specified by:
- createDeltain interface- PrismObject<O extends Objectable>
 
- 
createAddDelta- Specified by:
- createAddDeltain interface- PrismObject<O extends Objectable>
 
- 
createModifyDelta- Specified by:
- createModifyDeltain interface- PrismObject<O extends Objectable>
 
- 
createDeleteDelta- Specified by:
- createDeleteDeltain interface- PrismObject<O extends Objectable>
 
- 
setParentDescription copied from interface:ItemSets the parent of this item.- Specified by:
- setParentin interface- Item<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Specified by:
- setParentin interface- PrismObject<O extends Objectable>
- Overrides:
- setParentin class- ItemImpl<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Parameters:
- parentValue- The new parent
 
- 
getParentDescription copied from interface:ItemReturns the parent of this item (if exists). Currently this has to be a PrismContainerValue.- Specified by:
- getParentin interface- Item<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Specified by:
- getParentin interface- PrismObject<O extends Objectable>
- Overrides:
- getParentin class- ItemImpl<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Returns:
- The parent if exists
 
- 
getPathDescription 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 interface- Item<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Specified by:
- getPathin interface- Itemable
- Overrides:
- getPathin class- ItemImpl<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Returns:
- the path
 
- 
getPathComponent- Overrides:
- getPathComponentin class- ItemImpl<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
 
- 
toString- Overrides:
- toStringin class- PrismContainerImpl<O extends Objectable>
 
- 
toDebugNameReturns short string representing identity of this object. It should container object type, OID and name. It should be presented in a form suitable for log and diagnostic messages (understandable for system administrator).- Specified by:
- toDebugNamein interface- PrismObject<O extends Objectable>
 
- 
toDebugTypeReturns short string identification of object type. It should be in a form suitable for log messages. There is no requirement for the type name to be unique, but it rather has to be compact. E.g. short element names are preferred to long QNames or URIs.- Specified by:
- toDebugTypein interface- PrismObject<O extends Objectable>
 
- 
getDebugDumpClassNameReturn a human readable name of this class suitable for logs.- Overrides:
- getDebugDumpClassNamein class- PrismContainerImpl<O extends Objectable>
 
- 
appendDebugDumpSuffix- Overrides:
- appendDebugDumpSuffixin class- ItemImpl<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
 
- 
getBusinessDisplayNameReturn display name intended for business users of midPoint- Specified by:
- getBusinessDisplayNamein interface- PrismObject<O extends Objectable>
 
- 
checkConsistenceInternalpublic void checkConsistenceInternal(Itemable rootItem, boolean requireDefinitions, boolean prohibitRaw, ConsistencyCheckScope scope) - Specified by:
- checkConsistenceInternalin interface- Item<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
- Overrides:
- checkConsistenceInternalin class- PrismContainerImpl<O extends Objectable>
 
- 
performFreezepublic void performFreeze()- Overrides:
- performFreezein class- ItemImpl<PrismContainerValue<O extends Objectable>,- PrismContainerDefinition<O extends Objectable>> 
 
- 
cloneIfImmutable- Specified by:
- cloneIfImmutablein interface- PrismObject<O extends Objectable>
 
- 
asObjectableList@NotNull public static <T extends Objectable> @NotNull List<T> asObjectableList(@NotNull @NotNull List<PrismObjectImpl<T>> objects) 
 
-