Interface ResourceObjectClassDefinition

All Superinterfaces:
AbstractTypeDefinition, AssociationDefinitionStore, AttributeDefinitionStore, Cloneable, DebugDumpable, Definition, FrameworkNameResolver, Freezable, IdentifiersDefinitionStore, LayeredDefinition, LocalItemDefinitionStore, PrismLifecycleDefinition, PrismPresentationDefinition, ResourceObjectDefinition, ResourceObjectInboundDefinition, Revivable, Serializable, SmartVisitable<Definition>, TypeDefinition, Visitable<Definition>
All Known Subinterfaces:
ResourceObjectClassDefinitionDelegator
All Known Implementing Classes:
ResourceObjectClassDefinitionImpl

public interface ResourceObjectClassDefinition extends ResourceObjectDefinition
Describes a resource object class (e.g. `ri:inetOrgPerson`). It is basically a collection of attribute/association definitions, with a couple of other properties.
  • Method Details

    • getNativeObjectClassName

      String getNativeObjectClassName()
      Returns the native object class name. Native object class is the name of the object class as it is seen by the resource itself. The name of the object class used in midPoint may be constrained by XSD or other syntax and therefore may be "mangled" to conform to such syntax. The _native object class_ value will contain original, un-mangled name (if available). Returns null if there is no native object class. 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:
      native object class
    • isAuxiliary

      boolean isAuxiliary()
      Is this an auxiliary object class, i.e., a class that can be attached to an object that already holds the structural object class? This is originally an LDAP concept, but it may be applicable to other systems as well.
    • isDefaultAccountDefinition

      boolean isDefaultAccountDefinition()
      Indicates whether definition is the default account definition. (This feature is present for "dumb" resource definition that are completely without `schemaHandling` part.) This is a way how a resource connector may suggest applicable object classes. Currently the only use of this flag is that ConnId `pass:[__ACCOUNT__]` is declared as a default for the kind of `ACCOUNT`. Originally, this property was called `defaultInAKind` and marked the object class as being default for given kind. At that time, the kind was part of object class definition. This is no longer the case, therefore also this property is renamed - and is available only for account-like object classes. In the future we may put those things (kind + default-in-a-kind) back, if needed.
    • isRaw

      boolean isRaw()
      Returns `true` if this definition is a part of the raw schema. Note that if it's part of refined schema (but not refined in any way) the return value is `true`. See also hasRefinements().
    • hasRefinements

      boolean hasRefinements()
      Returns `true` if there are really any refinements (i.e. a refinement bean exists, even if it can be effectively empty, besides obligatory object class name reference).
    • createShadowSearchQuery

      @NotNull default @NotNull ObjectQuery createShadowSearchQuery(String resourceOid) throws SchemaException
      Creates a query for obtaining shadows related to this object class.
      Specified by:
      createShadowSearchQuery in interface ResourceObjectDefinition
      Throws:
      SchemaException
    • clone

      @NotNull @NotNull ResourceObjectClassDefinition clone()
      Description copied from interface: ResourceObjectDefinition
      Returns a mutable definition. BEWARE, the mutable CompositeObjectDefinition is significantly slower than its immutable counterpart. See MID-9156.
      Specified by:
      clone in interface Definition
      Specified by:
      clone in interface ResourceObjectDefinition
    • deepClone

      @NotNull @NotNull ResourceObjectClassDefinition deepClone(@NotNull @NotNull DeepCloneOperation operation)
      Description copied from interface: ResourceObjectDefinition
      Returns a mutable definition. BEWARE, the mutable CompositeObjectDefinition is significantly slower than its immutable counterpart. See MID-9156.
      Specified by:
      deepClone in interface ResourceObjectDefinition