Interface ShadowReferenceAttributeDefinition

All Superinterfaces:
Cloneable, DebugDumpable, Definition, Freezable, ItemDefinition<PrismReference>, LayeredDefinition, LivePrismItemDefinition, PrismItemAccessDefinition, PrismItemBasicDefinition, PrismItemMiscDefinition, PrismItemStorageDefinition, PrismLifecycleDefinition, PrismPresentationDefinition, PrismReferenceDefinition, ResourceObjectInboundProcessingDefinition.ItemInboundProcessingDefinition, Revivable, SchemaLookup.Aware, Serializable, ShadowAttributeDefinition<ShadowReferenceAttributeValue,ShadowReferenceAttributeDefinition,Referencable,ShadowReferenceAttribute>, ShadowAttributeUcfDefinition, ShadowItemDefinition, ShadowItemLayeredDefinition, ShortDumpable, SmartVisitable<Definition>, Visitable<Definition>
All Known Implementing Classes:
ShadowReferenceAttributeDefinitionImpl

Definition of an ShadowReferenceAttribute.
  • Method Details

    • getParticipantRole

      @NotNull @NotNull ShadowReferenceParticipantRole getParticipantRole()
      What is the role of the object that holds this reference attribute in the subject-object relationship? For example, when considering `ri:group` reference attribute on `ri:user` object class pointing to the `ri:group` object class, the participant role for this attribute is ShadowReferenceParticipantRole.SUBJECT, because `ri:user` object class participates in this relation as the subject. For the other side of this reference, the `ri:member` reference attribute on `ri:group` object class will have participant role of ShadowReferenceParticipantRole.OBJECT, because `ri:group` object class participates in this relation as the object.
    • getTargetParticipantTypes

      @NotNull @NotNull Collection<ShadowRelationParticipantType> getTargetParticipantTypes()
      Returns types of the objects on the other side. Always non-empty.
    • getGeneralizedObjectSideObjectDefinition

      @NotNull @NotNull ResourceObjectDefinition getGeneralizedObjectSideObjectDefinition()
      ONLY FOR SUBJECT-SIDE PARTICIPANT (and always non-null for it) Returns generalized definition for objects at the object (target) side. It should cover all possible objects; so it contains definitions of all possible auxiliary object classes. May be: - embedded (for references used to implement complex associations) - or standalone (for references used to implement simple associations, or references without associations). May be: - genuine ResourceObjectClassDefinition - or ResourceObjectTypeDefinition (if there's a default type for that object class; hopefully removed soon, see MID-10309) - or CompositeObjectDefinition if there are auxiliary object classes. Immutable after the resource schema is frozen.
      See Also:
      • AbstractShadowReferenceTypeDefinition.generalizedObjectSideObjectDefinition
    • isTargetingSingleEmbeddedObjectClass

      default boolean isTargetingSingleEmbeddedObjectClass()
      Returns `true` if the reference points to an embedded object class. This indicates a complex association. Callable only on the subject-side reference definitions!
    • getTargetObjectClassName

      @NotNull default @NotNull QName getTargetObjectClassName()
      Returns the target object class name. Callable only on the subject-side reference definitions!
    • checkSubjectSide

      default void checkSubjectSide()
    • matches

      default boolean matches(@NotNull @NotNull ShadowType potentialTarget)
      Returns `true` if the provided shadow is a legal target for this reference (according to the definition).
    • createTargetObjectsFilter

      @NotNull default @NotNull ObjectFilter createTargetObjectsFilter(boolean resourceSafe)
      Returns a filter that provides all shadows eligible as the target value for this reference attribute. If `resourceSafe` is `true`, the filter is safe for the execution on the resource, i.e., it does not contain multiple values for kind and intent. The filtering by object class is used in such cases; that requires post-processing of returned values that filters out those shadows that do not match those kind/intent values. Note that currently provisioning module require at most one kind/intent even with `noFetch` option being present.
    • createEmptyDelta

      ReferenceDelta createEmptyDelta()
    • getSimulationDefinition

      SimulatedShadowReferenceTypeDefinition getSimulationDefinition()
    • getSimulationDefinitionRequired

      SimulatedShadowReferenceTypeDefinition getSimulationDefinitionRequired()
    • getResourceOid

      @NotNull default @NotNull String getResourceOid()
    • clone

      @NotNull @NotNull ShadowReferenceAttributeDefinition clone()
      Specified by:
      clone in interface Definition
      Specified by:
      clone in interface ItemDefinition<PrismReference>
      Specified by:
      clone in interface PrismReferenceDefinition
      Specified by:
      clone in interface ShadowAttributeDefinition<ShadowReferenceAttributeValue,ShadowReferenceAttributeDefinition,Referencable,ShadowReferenceAttribute>
    • cloneWithNewCardinality

      @NotNull @NotNull ShadowReferenceAttributeDefinition cloneWithNewCardinality(int newMinOccurs, int newMaxOccurs)