Class ShadowReferenceAttribute
java.lang.Object
com.evolveum.midpoint.prism.AbstractFreezable
com.evolveum.midpoint.prism.impl.ItemImpl<PrismReferenceValue,PrismReferenceDefinition>
com.evolveum.midpoint.prism.impl.PrismReferenceImpl
com.evolveum.midpoint.schema.processor.ShadowReferenceAttribute
- All Implemented Interfaces:
ComplexCopyable<Item<PrismReferenceValue,,PrismReferenceDefinition>> Freezable,Item<PrismReferenceValue,,PrismReferenceDefinition> Itemable,ItemDefinitionTransformer.TransformableItem,ParentVisitable,PathVisitable,PrismReference,PrismVisitable,Revivable,Visitable,ShadowAttribute<ShadowReferenceAttributeValue,,ShadowReferenceAttributeDefinition, Referencable, ShadowReferenceAttribute> DebugDumpable,ShortDumpable,Serializable,Cloneable
public class ShadowReferenceAttribute
extends com.evolveum.midpoint.prism.impl.PrismReferenceImpl
implements ShadowAttribute<ShadowReferenceAttributeValue,ShadowReferenceAttributeDefinition,Referencable,ShadowReferenceAttribute>
Represents a shadow reference attribute (like `ri:group` or `ri:access`). It is a reference to another shadow.
It is a regular attribute, just like
ShadowSimpleAttribute.
The reference can be _native_ or _simulated_. The former is provided by the connector, while the latter is simulated
by the midPoint provisioning module.
NOTE: This is a lower-level concept, present in resource-facing shadows and shadows stored in the repository.
For model-visible shadows, each such attribute is converted into a ShadowAssociation.
(Whether the value of this attribute will be kept in the shadow, is an open question.)-
Field Summary
Fields inherited from class com.evolveum.midpoint.prism.impl.ItemImpl
definition, elementName, incomplete, parent, valuesFields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRINGFields inherited from interface com.evolveum.midpoint.prism.Item
KEY_NAMESPACE_CONTEXT -
Constructor Summary
ConstructorsConstructorDescriptionShadowReferenceAttribute(QName name, ShadowReferenceAttributeDefinition definition) -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidapplyDefinitionFrom(@NotNull ResourceObjectDefinition objectDefinition) clone()Literal clone.@NotNull ShadowReferenceAttributecloneComplex(@NotNull CloneStrategy strategy) Complex clone with different cloning strategies.@NotNull ShadowReferenceAttributeValuecreateNewValueFromShadow(@NotNull AbstractShadow shadow) Creates a value holding the shadow.@NotNull ShadowReferenceAttributeValuecreateNewValueWithIdentifierRealValue(@NotNull QName identifierName, @NotNull Object identifierRealValue) Callable only on the subject-side reference attribute.@NotNull ReferenceDeltaCreates a delta that would enforce (via REPLACE operation) the values of this attribute.@NotNull List<ShadowReferenceAttributeValue>Correctly typed return value.protected StringTODO shouldn't be the definition always required?@NotNull ShadowReferenceAttributeDefinition@NotNull List<ObjectReferenceType>@NotNull ShadowReferenceAttributeValuebooleanintsize()Returns the number of values for this item.Methods inherited from class com.evolveum.midpoint.prism.impl.PrismReferenceImpl
copyValues, createDelta, createDelta, debugDump, find, findPartial, findReferencedItem, findValueByOid, getAllValues, getOid, getRealValue, getRealValues, getTargetName, getValue, merge, toStringMethods inherited from class com.evolveum.midpoint.prism.impl.ItemImpl
accept, accept, acceptParentVisitor, add, addAll, addForced, addIgnoringEquivalents, addInternal, addInternalExecution, addRespectingMetadataAndCloning, addWithResult, appendDebugDumpSuffix, applyDefinition, applyDefinitionToValues, assertDefinitions, assertDefinitions, assertDefinitions, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkConsistenceInternal, checkDefinition, clear, copyValues, diff, equals, equals, equals, fixupDelta, getAllItems, getElementName, getHighestId, getParent, getPath, getPathComponent, getRealValue, getRealValuesArray, getUserData, getUserData, getValues, hashCode, hashCode, hashCode, isIncomplete, merge, normalize, performFreeze, propagateDeepCloneDefinition, recomputeAllValues, remove, remove, removeAll, removeRespectingMetadata, removeWithResult, replace, replaceAll, revive, setDefinition, setElementName, setIncomplete, setParent, setUserData, transformDefinition, valueRemovedMethods inherited from class com.evolveum.midpoint.prism.AbstractFreezable
freeze, freeze, freezeAll, freezeNullableList, isImmutable, isMutableMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDumpLazily, debugDumpLazilyMethods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable, freeze, isImmutableMethods inherited from interface com.evolveum.midpoint.prism.Item
acceptParentVisitor, acceptVisitor, add, add, addAll, addAll, addIgnoringEquivalents, addRespectingMetadataAndCloning, applyDefinition, applyDefinition, applyDefinitionIfMissing, assertDefinitions, assertDefinitions, assertDefinitions, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkConsistenceInternal, clear, contains, contains, diff, diff, equals, equals, equals, filterValues, filterYields, findValue, findValue, getAllItems, getAnyValue, getAnyValue, getClonedValues, getDisplayName, getElementName, getHelp, getHighestId, getNamespaceContext, getParent, getPath, getRealValue, getRealValues, getRealValuesArray, getRealValuesOrRawTypes, getUserData, getUserData, getValues, hasAnyValue, hasCompleteDefinition, hashCode, hashCode, hashCode, hasRaw, isEmpty, isIncomplete, isOperational, isRaw, isSingleValue, isSingleValueByDefinition, merge, normalize, recomputeAllValues, remove, remove, removeAll, removeIf, removeRespectingMetadata, replace, replaceAll, setDefinition, setElementName, setIncomplete, setParent, setUserData, valuesStreamMethods inherited from interface com.evolveum.midpoint.prism.PathVisitable
acceptMethods inherited from interface com.evolveum.midpoint.prism.PrismReference
copy, immutableCopy, mutableCopyMethods inherited from interface com.evolveum.midpoint.schema.processor.ShadowAttribute
clearParent, createDelta, createDelta, getElementName, isIncomplete, setIncomplete, shortDumpMethods inherited from interface com.evolveum.midpoint.util.ShortDumpable
shortDump, shortDumpLazily
-
Constructor Details
-
ShadowReferenceAttribute
-
-
Method Details
-
semanticEqualsChecker
-
getDefinition
TODO shouldn't be the definition always required?- Specified by:
getDefinitionin interfaceItem<PrismReferenceValue,PrismReferenceDefinition> - Specified by:
getDefinitionin interfaceItemable- Specified by:
getDefinitionin interfaceShadowAttribute<ShadowReferenceAttributeValue,ShadowReferenceAttributeDefinition, Referencable, ShadowReferenceAttribute> - Overrides:
getDefinitionin classcom.evolveum.midpoint.prism.impl.ItemImpl<PrismReferenceValue,PrismReferenceDefinition> - Returns:
- applicable definition
-
getDefinitionRequired
-
clone
Description copied from interface:ItemLiteral clone.- Specified by:
clonein interfaceItem<PrismReferenceValue,PrismReferenceDefinition> - Specified by:
clonein interfacePrismReference- Specified by:
clonein interfaceShadowAttribute<ShadowReferenceAttributeValue,ShadowReferenceAttributeDefinition, Referencable, ShadowReferenceAttribute> - Overrides:
clonein classcom.evolveum.midpoint.prism.impl.PrismReferenceImpl
-
cloneComplex
@NotNull public @NotNull ShadowReferenceAttribute cloneComplex(@NotNull @NotNull CloneStrategy strategy) Description copied from interface:ItemComplex clone with different cloning strategies.- Specified by:
cloneComplexin interfaceComplexCopyable<Item<PrismReferenceValue,PrismReferenceDefinition>> - Specified by:
cloneComplexin interfaceItem<PrismReferenceValue,PrismReferenceDefinition> - Specified by:
cloneComplexin interfacePrismReference- Specified by:
cloneComplexin interfaceShadowAttribute<ShadowReferenceAttributeValue,ShadowReferenceAttributeDefinition, Referencable, ShadowReferenceAttribute> - Overrides:
cloneComplexin classcom.evolveum.midpoint.prism.impl.PrismReferenceImpl- See Also:
-
size
public int size()Description copied from interface:ItemReturns the number of values for this item.- Specified by:
sizein interfaceItem<PrismReferenceValue,PrismReferenceDefinition>
-
getDebugDumpClassName
- Overrides:
getDebugDumpClassNamein classcom.evolveum.midpoint.prism.impl.PrismReferenceImpl
-
createNewValueFromShadow
@NotNull public @NotNull ShadowReferenceAttributeValue createNewValueFromShadow(@NotNull @NotNull AbstractShadow shadow) throws SchemaException Creates a value holding the shadow. Its definition must correspond to the one of the association.- Throws:
SchemaException
-
createNewValueWithIdentifierRealValue
@NotNull public @NotNull ShadowReferenceAttributeValue createNewValueWithIdentifierRealValue(@NotNull @NotNull QName identifierName, @NotNull @NotNull Object identifierRealValue) throws SchemaException Callable only on the subject-side reference attribute.- Throws:
SchemaException
-
getAttributeValues
Description copied from interface:ShadowAttributeCorrectly typed return value. The getValues() method is not typed like this due to parameterized types chaos.- Specified by:
getAttributeValuesin interfaceShadowAttribute<ShadowReferenceAttributeValue,ShadowReferenceAttributeDefinition, Referencable, ShadowReferenceAttribute>
-
getReferenceRealValues
-
addValueSkipUniquenessCheck
- Specified by:
addValueSkipUniquenessCheckin interfaceShadowAttribute<ShadowReferenceAttributeValue,ShadowReferenceAttributeDefinition, Referencable, ShadowReferenceAttribute> - Throws:
SchemaException
-
hasNoValues
public boolean hasNoValues()- Specified by:
hasNoValuesin interfaceItem<PrismReferenceValue,PrismReferenceDefinition> - Specified by:
hasNoValuesin interfaceShadowAttribute<ShadowReferenceAttributeValue,ShadowReferenceAttributeDefinition, Referencable, ShadowReferenceAttribute>
-
createImmutableClone
- Specified by:
createImmutableClonein interfaceItem<PrismReferenceValue,PrismReferenceDefinition> - Specified by:
createImmutableClonein interfacePrismReference- Specified by:
createImmutableClonein interfaceShadowAttribute<ShadowReferenceAttributeValue,ShadowReferenceAttributeDefinition, Referencable, ShadowReferenceAttribute> - Overrides:
createImmutableClonein classcom.evolveum.midpoint.prism.impl.PrismReferenceImpl
-
getSingleValueRequired
-
applyDefinitionFrom
public void applyDefinitionFrom(@NotNull @NotNull ResourceObjectDefinition objectDefinition) throws SchemaException - Specified by:
applyDefinitionFromin interfaceShadowAttribute<ShadowReferenceAttributeValue,ShadowReferenceAttributeDefinition, Referencable, ShadowReferenceAttribute> - Throws:
SchemaException
-
createReplaceDelta
Creates a delta that would enforce (via REPLACE operation) the values of this attribute.- Specified by:
createReplaceDeltain interfaceShadowAttribute<ShadowReferenceAttributeValue,ShadowReferenceAttributeDefinition, Referencable, ShadowReferenceAttribute>
-