Interface IdentifiersDefinitionStore

All Known Subinterfaces:
CompositeObjectDefinition, CompositeObjectDefinitionDelegator, ResourceObjectClassDefinition, ResourceObjectClassDefinitionDelegator, ResourceObjectDefinition, ResourceObjectDefinitionDelegator, ResourceObjectTypeDefinition, ResourceObjectTypeDefinitionDelegator, ShadowAttributesComplexTypeDefinition
All Known Implementing Classes:
AbstractResourceObjectDefinitionImpl, CompositeObjectDefinitionImpl, ResourceObjectClassDefinitionImpl, ResourceObjectTypeDefinitionImpl

public interface IdentifiersDefinitionStore
Provides information about primary and secondary identifiers.
  • Method Details

    • getPrimaryIdentifiers

      @NotNull @NotNull Collection<? extends ShadowSimpleAttributeDefinition<?>> getPrimaryIdentifiers()
      Returns the definition of primary identifier attributes of a resource object. May return empty set if there are no identifier attributes. Must not return null. The exception should be never thrown unless there is some bug in the code. The validation of model consistency should be done at the time of schema parsing.
      Returns:
      definition of identifier attributes
    • getPrimaryIdentifierRequired

      @NotNull default <T> @NotNull ShadowSimpleAttributeDefinition<T> getPrimaryIdentifierRequired()
      Currently, there must be exactly one primary identifier.
    • getPrimaryIdentifiersNames

      @NotNull @NotNull Collection<QName> getPrimaryIdentifiersNames()
      Returns names of primary identifiers.
      See Also:
    • isPrimaryIdentifier

      default boolean isPrimaryIdentifier(QName attrName)
      Returns true if the attribute with a given name is among primary identifiers. Matching is done using namespace-approximate method (testing only local part if no namespace is provided), so beware of incidental matching (e.g. ri:uid vs icfs:uid).
    • getSecondaryIdentifiers

      @NotNull @NotNull Collection<? extends ShadowSimpleAttributeDefinition<?>> getSecondaryIdentifiers()
      Returns the definition of secondary identifier attributes of a resource object. May return empty set if there are no secondary identifier attributes. Must not return null. The exception should be never thrown unless there is some bug in the code. The validation of model consistency should be done at the time of schema parsing.
      Returns:
      definition of secondary identifier attributes
    • getSecondaryIdentifierRequired

      @VisibleForTesting @NotNull default <T> @NotNull ShadowSimpleAttributeDefinition<T> getSecondaryIdentifierRequired()
      In general, there may be more (or zero) secondary identifiers present. But in special cases we may expect just one.
    • getSecondaryIdentifiersNames

      @NotNull @NotNull Collection<QName> getSecondaryIdentifiersNames()
      Returns names of secondary identifiers.
      See Also:
    • isSecondaryIdentifier

      default boolean isSecondaryIdentifier(QName attrName)
      Returns true if the attribute with a given name is among secondary identifiers. Matching is done using namespace-approximate method (testing only local part if no namespace is provided), so beware of incidental matching (e.g. ri:uid vs icfs:uid).
    • isIdentifier

      default boolean isIdentifier(QName attrName)
      Returns true if the attribute is either primary or secondary identifier.
    • getAllIdentifiers

      @NotNull default @NotNull Collection<? extends ShadowSimpleAttributeDefinition<?>> getAllIdentifiers()
      Returns both primary and secondary identifiers.
    • getAllIdentifiersNames

      @NotNull default @NotNull Collection<QName> getAllIdentifiersNames()