Interface ResourceObjectDefinitionDelegator
- All Superinterfaces:
AssociationDefinitionStore
,AttributeDefinitionStore
,Cloneable
,ComplexTypeDefinition
,ComplexTypeDefinitionDelegator
,DebugDumpable
,Definition
,DefinitionDelegator
,Freezable
,IdentifiersDefinitionStore
,LayeredDefinition
,LocalItemDefinitionStore
,PrismContextSensitive
,ResourceObjectDefinition
,Revivable
,Serializable
,SmartVisitable<Definition>
,TypeDefinition
,TypeDefinitionDelegator
,Visitable<Definition>
- All Known Subinterfaces:
CompositeObjectDefinitionDelegator
,ResourceObjectClassDefinitionDelegator
,ResourceObjectTypeDefinitionDelegator
- All Known Implementing Classes:
TransformableComplexTypeDefinition.TrCompositeObjectDefinition
,TransformableComplexTypeDefinition.TrResourceObjectClassDefinition
,TransformableComplexTypeDefinition.TrResourceObjectDefinition
,TransformableComplexTypeDefinition.TrResourceObjectTypeDefinition
public interface ResourceObjectDefinitionDelegator
extends ComplexTypeDefinitionDelegator, ResourceObjectDefinition
-
Field Summary
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
Method Summary
Modifier and TypeMethodDescriptiondefault PrismObject<ShadowType>
createBlankShadow
(String resourceOid, String tag) Creates a blankShadowType
object, with the attributes container having appropriate definition.default @NotNull ObjectQuery
createShadowSearchQuery
(String resourceOid) Creates a query for obtaining shadows related to this object class or object type.delegate()
default ResourceAttributeDefinition<?>
Finds attribute definition using local name only.default @Nullable ResourceAttributeDefinition<?>
findAttributeDefinition
(QName name, boolean caseInsensitive) Finds a attribute definition by looking at the property name.default @NotNull ResourceObjectDefinition
forLayerImmutable
(@NotNull LayerType layer) AsResourceObjectDefinition.forLayerMutable(LayerType)
but returns immutable definition.default @NotNull ResourceObjectDefinition
forLayerMutable
(@NotNull LayerType layer) Creates a layer-specific mutable version of this definition.default ResourceActivationDefinitionType
default @NotNull Collection<ResourceAssociationDefinition>
Returns definitions of all associations as an unmodifiable collection.default @NotNull List<? extends ResourceAttributeDefinition<?>>
Returns all attribute definitions as an unmodifiable collection.default ResourceObjectReferenceType
The definition of base context (resource object container).default Collection<QName>
Returns the names of auxiliary object classes that are "statically" defined for this object type (or object class, in the future).default @NotNull LayerType
Gets the current point-of-view: on which layer do we look at the data?default String
Return a human readable name of this class suitable for logs.default @Nullable DefaultInboundMappingEvaluationPhasesType
Returns the phases in which inbound mappings are evaluated by default.default @NotNull ResourceObjectTypeDefinitionType
Returns the "raw" configuration bean for this object type.default @NotNull ResourceObjectTypeDelineation
Returns the delineation of the set of objects belonging to this object type.default String
Free-form textual description of the object.default ResourceAttributeDefinition<?>
Returns the definition of description attribute of a resource object.default @Nullable QName
Returns name of the description attribute.default ResourceAttributeDefinition<?>
Returns the definition of display name attribute.default @Nullable QName
Returns name of the display name attribute.default <T extends CapabilityType>
TgetEnabledCapability
(@NotNull Class<T> capabilityClass, ResourceType resource) Checks the presence of capability in: 1.default String
TODOdefault @Nullable String
What lifecycle state is the (refined) object class or object type definition? Raw object class definition should always return `null` here.default ResourceAttributeDefinition<?>
Returns the attribute used as a visible name of the resource object.default @Nullable QName
Returns name of the naming attribute.default @NotNull ResourceObjectClassDefinition
Returns the (raw or refined) object class definition.default @NotNull QName
Returns the name of the object class.default ResourceObjectMultiplicityType
default @Nullable ResourcePasswordDefinitionType
default @NotNull Collection<? extends ResourceAttributeDefinition<?>>
Returns the definition of primary identifier attributes of a resource object.default @NotNull Collection<QName>
Returns names of primary identifiers.default PrismObjectDefinition<ShadowType>
Returns a prism definition for the prism object/objects carrying the resource object/objects.default ProjectionPolicyType
default @NotNull Collection<ResourceObjectPattern>
Returns compiled patterns denoting protected objects.default @NotNull ResourceObjectClassDefinition
Returns the raw object class definition.default String
This is currently used only to pass information about association in the model-impl TODO consider removal!default SearchHierarchyScope
Definition of search hierarchy scope.default @NotNull Collection<? extends ResourceAttributeDefinition<?>>
Returns the definition of secondary identifier attributes of a resource object.default @NotNull Collection<QName>
Returns names of secondary identifiers.default ObjectReferenceType
default @Nullable ResourceObjectTypeDefinition
Is this definition bound to a specific resource type? If yes, this method returns its definition.default @Nullable ResourceObjectTypeIdentification
Is this definition bound to a specific resource type? If yes, this method returns its identification.default @NotNull ResourceObjectVolatilityType
Specifies volatility of this type of resource objects, i.e.default boolean
hasAuxiliaryObjectClass
(QName expectedObjectClassName) TODO define semantics (it's different forCompositeObjectDefinition
and the others!default boolean
isDefaultFor
(@NotNull ShadowKindType kind) Returns true if this definition can be considered as a default for the specified kind.default boolean
isPrimaryIdentifier
(QName attrName) Returns true if the attribute with a given name is among primary identifiers.default boolean
isSecondaryIdentifier
(QName attrName) Returns true if the attribute with a given name is among secondary identifiers.default void
replaceDefinition
(@NotNull QName itemName, @Nullable ItemDefinition<?> newDefinition) Replaces a definition for given item name with a provided one.CreatesResourceAttributeContainerDefinition
with this definition as a complex type definition.toResourceAttributeContainerDefinition
(QName elementName) CreatesResourceAttributeContainerDefinition
(with given item name) with this definition as a complex type definition.default void
validate()
Executes some basic checks on this object type.Methods inherited from interface com.evolveum.midpoint.schema.processor.AssociationDefinitionStore
findAssociationDefinition, findAssociationDefinitionRequired, getAssociationDefinitions, getNamesOfAssociations, getNamesOfAssociationsWithInboundExpressions, getNamesOfAssociationsWithOutboundExpressions
Methods inherited from interface com.evolveum.midpoint.schema.processor.AttributeDefinitionStore
containsAttributeDefinition, findAttributeDefinition, findAttributeDefinitionRequired, findAttributeDefinitionRequired, findAttributeDefinitionStrictlyRequired, findAttributeDefinitionStrictlyRequired, getAttributeDefinitions, getNamesOfAttributesWithInboundExpressions, getNamesOfAttributesWithOutboundExpressions, hasIndexOnlyAttributes, propertyToAttribute
Methods inherited from interface com.evolveum.midpoint.prism.ComplexTypeDefinition
getXmlAttributeDefinitions, hasSubstitutions, isItemDefinitionRemoved, isStrictAnyMarker, toMutable
Methods inherited from interface com.evolveum.midpoint.prism.deleg.ComplexTypeDefinitionDelegator
findContainerDefinition, findItemDefinition, findItemDefinition, findReferenceDefinition, getDefaultNamespace, getDefinitions, getDiagrams, getExtensionForType, getIgnoredNamespaces, hasOperationalOnlyItems, hasSubstitutions, isContainerMarker, isEmpty, isListMarker, isObjectMarker, isReferenceMarker, isXsdAnyMarker, itemOrSubstitution, merge, substitution, trimTo
Methods inherited from interface com.evolveum.midpoint.prism.deleg.DefinitionDelegator
accept, accept, debugDump, debugDump, debugDump, debugDumpLazily, debugDumpLazily, getAnnotation, getAnnotations, getDeprecatedSince, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, getMutabilityFlag, getPlannedRemoval, getPrismContext, getProcessing, getRemovedSince, getSchemaMigrations, getSchemaRegistry, getTypeClass, getTypeName, isAbstract, isDeprecated, isElaborate, isEmphasized, isExperimental, isIgnored, isRemoved, isRuntimeSchema, setAnnotation
Methods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable, freeze, isImmutable
Methods inherited from interface com.evolveum.midpoint.schema.processor.IdentifiersDefinitionStore
getAllIdentifiers, getPrimaryIdentifierRequired, isIdentifier
Methods inherited from interface com.evolveum.midpoint.prism.LocalItemDefinitionStore
containsItemDefinition, findLocalItemDefinition, findLocalItemDefinition, findPropertyDefinition
Methods inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectDefinition
clone, deepClone, getActivationBidirectionalMappingType, getActivationFetchStrategy, getAuxiliaryDefinitions, getPasswordFetchStrategy, getPasswordInbound, getPasswordOutbound, instantiate, matchesObjectClassName, replaceDefinition
Methods inherited from interface com.evolveum.midpoint.prism.TypeDefinition
isAssignableFrom
Methods inherited from interface com.evolveum.midpoint.prism.deleg.TypeDefinitionDelegator
canRepresent, getCompileTimeClass, getInstantiationOrder, getStaticSubTypes, getSuperType
-
Method Details
-
delegate
ResourceObjectDefinition delegate()- Specified by:
delegate
in interfaceComplexTypeDefinitionDelegator
- Specified by:
delegate
in interfaceDefinitionDelegator
- Specified by:
delegate
in interfaceTypeDefinitionDelegator
-
getAttributeDefinitions
Description copied from interface:AttributeDefinitionStore
Returns all attribute definitions as an unmodifiable collection. Should be the same content as returned by `getDefinitions`. The returned value is aList
because of the contract ofComplexTypeDefinition.getDefinitions()
.- Specified by:
getAttributeDefinitions
in interfaceAttributeDefinitionStore
-
findAttributeDefinition
@Nullable default @Nullable ResourceAttributeDefinition<?> findAttributeDefinition(QName name, boolean caseInsensitive) Description copied from interface:AttributeDefinitionStore
Finds a attribute definition by looking at the property name. Returns null if nothing is found.- Specified by:
findAttributeDefinition
in interfaceAttributeDefinitionStore
- Parameters:
name
- property definition namecaseInsensitive
- if true, ignoring the case- Returns:
- found property definition or null
-
findAttributeDefinition
Description copied from interface:AttributeDefinitionStore
Finds attribute definition using local name only. BEWARE: Ignores attributes in namespaces other than "ri:" (e.g. icfs:uid and icfs:name).- Specified by:
findAttributeDefinition
in interfaceAttributeDefinitionStore
-
getPrimaryIdentifiers
@NotNull default @NotNull Collection<? extends ResourceAttributeDefinition<?>> getPrimaryIdentifiers()Description copied from interface:IdentifiersDefinitionStore
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.- Specified by:
getPrimaryIdentifiers
in interfaceIdentifiersDefinitionStore
- Returns:
- definition of identifier attributes
-
isPrimaryIdentifier
Description copied from interface:IdentifiersDefinitionStore
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).- Specified by:
isPrimaryIdentifier
in interfaceIdentifiersDefinitionStore
-
getSecondaryIdentifiers
@NotNull default @NotNull Collection<? extends ResourceAttributeDefinition<?>> getSecondaryIdentifiers()Description copied from interface:IdentifiersDefinitionStore
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.- Specified by:
getSecondaryIdentifiers
in interfaceIdentifiersDefinitionStore
- Returns:
- definition of secondary identifier attributes
-
isSecondaryIdentifier
Description copied from interface:IdentifiersDefinitionStore
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).- Specified by:
isSecondaryIdentifier
in interfaceIdentifiersDefinitionStore
-
getDescriptionAttribute
Description copied from interface:ResourceObjectDefinition
Returns the definition of description attribute of a resource object. Returns null if there is no description attribute. 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. NOTE: Currently seems to be not used. (Neither not set nor used.)- Specified by:
getDescriptionAttribute
in interfaceResourceObjectDefinition
-
getNamingAttribute
Description copied from interface:ResourceObjectDefinition
Returns the attribute used as a visible name of the resource object.- Specified by:
getNamingAttribute
in interfaceResourceObjectDefinition
-
getDisplayNameAttribute
Description copied from interface:ResourceObjectDefinition
Returns the definition of display name attribute. Display name attribute specifies which resource attribute should be used as title when displaying objects of a specific resource object class. It must point to an attribute of String type. If not present, primary identifier should be used instead (but this method does not handle this default behavior). Returns null if there is no display name attribute. 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. NOTE: Currently seems to be not used. (Neither not set nor used.)- Specified by:
getDisplayNameAttribute
in interfaceResourceObjectDefinition
-
toResourceAttributeContainerDefinition
Description copied from interface:ResourceObjectDefinition
CreatesResourceAttributeContainerDefinition
with this definition as a complex type definition.- Specified by:
toResourceAttributeContainerDefinition
in interfaceResourceObjectDefinition
-
toResourceAttributeContainerDefinition
default ResourceAttributeContainerDefinition toResourceAttributeContainerDefinition(QName elementName) Description copied from interface:ResourceObjectDefinition
CreatesResourceAttributeContainerDefinition
(with given item name) with this definition as a complex type definition.- Specified by:
toResourceAttributeContainerDefinition
in interfaceResourceObjectDefinition
-
getPrismObjectDefinition
Description copied from interface:ResourceObjectDefinition
Returns a prism definition for the prism object/objects carrying the resource object/objects.- Specified by:
getPrismObjectDefinition
in interfaceResourceObjectDefinition
-
getPasswordDefinition
Description copied from interface:ResourceObjectDefinition
- Specified by:
getPasswordDefinition
in interfaceResourceObjectDefinition
-
getObjectClassDefinition
Description copied from interface:ResourceObjectDefinition
Returns the (raw or refined) object class definition. It is either this object itself (for object classes), or the linked object class definition (for object types).- Specified by:
getObjectClassDefinition
in interfaceResourceObjectDefinition
-
getObjectClassName
Description copied from interface:ResourceObjectDefinition
Returns the name of the object class.- Specified by:
getObjectClassName
in interfaceResourceObjectDefinition
-
getDescriptionAttributeName
Description copied from interface:ResourceObjectDefinition
Returns name of the description attribute.- Specified by:
getDescriptionAttributeName
in interfaceResourceObjectDefinition
- See Also:
-
getNamingAttributeName
Description copied from interface:ResourceObjectDefinition
Returns name of the naming attribute.- Specified by:
getNamingAttributeName
in interfaceResourceObjectDefinition
- See Also:
-
getDisplayNameAttributeName
Description copied from interface:ResourceObjectDefinition
Returns name of the display name attribute.- Specified by:
getDisplayNameAttributeName
in interfaceResourceObjectDefinition
- See Also:
-
createBlankShadow
Description copied from interface:ResourceObjectDefinition
Creates a blankShadowType
object, with the attributes container having appropriate definition.- Specified by:
createBlankShadow
in interfaceResourceObjectDefinition
-
getEnabledCapability
default <T extends CapabilityType> T getEnabledCapability(@NotNull @NotNull Class<T> capabilityClass, ResourceType resource) Description copied from interface:ResourceObjectDefinition
Checks the presence of capability in: 1. resource object definition (applicable only to resource object _type_ definitions), 2. additional connectors in resource (only if enabled there), 3. the main connector. Returns the present capability, but only if it's enabled.- Specified by:
getEnabledCapability
in interfaceResourceObjectDefinition
-
getHumanReadableName
Description copied from interface:ResourceObjectDefinition
TODO- Specified by:
getHumanReadableName
in interfaceResourceObjectDefinition
-
getAssociationDefinitions
Description copied from interface:AssociationDefinitionStore
Returns definitions of all associations as an unmodifiable collection. Note: these items are _not_ included in getDefinitions. (BTW, ResourceAssociationDefinition is not a subtype of ItemDefinition, not even of Definition.)- Specified by:
getAssociationDefinitions
in interfaceAssociationDefinitionStore
-
getPrimaryIdentifiersNames
Description copied from interface:IdentifiersDefinitionStore
Returns names of primary identifiers.- Specified by:
getPrimaryIdentifiersNames
in interfaceIdentifiersDefinitionStore
- See Also:
-
getSecondaryIdentifiersNames
Description copied from interface:IdentifiersDefinitionStore
Returns names of secondary identifiers.- Specified by:
getSecondaryIdentifiersNames
in interfaceIdentifiersDefinitionStore
- See Also:
-
getDebugDumpClassName
Description copied from interface:ResourceObjectDefinition
Return a human readable name of this class suitable for logs.- Specified by:
getDebugDumpClassName
in interfaceResourceObjectDefinition
-
forLayerMutable
@NotNull default @NotNull ResourceObjectDefinition forLayerMutable(@NotNull @NotNull LayerType layer) Description copied from interface:ResourceObjectDefinition
Creates a layer-specific mutable version of this definition.- Specified by:
forLayerMutable
in interfaceResourceObjectDefinition
-
forLayerImmutable
@NotNull default @NotNull ResourceObjectDefinition forLayerImmutable(@NotNull @NotNull LayerType layer) Description copied from interface:ResourceObjectDefinition
AsResourceObjectDefinition.forLayerMutable(LayerType)
but returns immutable definition.- Specified by:
forLayerImmutable
in interfaceResourceObjectDefinition
-
getSecurityPolicyRef
- Specified by:
getSecurityPolicyRef
in interfaceResourceObjectDefinition
- See Also:
-
replaceDefinition
default void replaceDefinition(@NotNull @NotNull QName itemName, @Nullable @Nullable ItemDefinition<?> newDefinition) Description copied from interface:ResourceObjectDefinition
Replaces a definition for given item name with a provided one.- Specified by:
replaceDefinition
in interfaceResourceObjectDefinition
-
getCurrentLayer
Description copied from interface:LayeredDefinition
Gets the current point-of-view: on which layer do we look at the data?- Specified by:
getCurrentLayer
in interfaceLayeredDefinition
-
getDescription
Description copied from interface:ResourceObjectDefinition
Free-form textual description of the object. It is supposed to describe the object or a construct that it is attached to.- Specified by:
getDescription
in interfaceResourceObjectDefinition
- See Also:
-
getResourceOid
Description copied from interface:ResourceObjectDefinition
This is currently used only to pass information about association in the model-impl TODO consider removal!- Specified by:
getResourceOid
in interfaceResourceObjectDefinition
-
getObjectMultiplicity
- Specified by:
getObjectMultiplicity
in interfaceResourceObjectDefinition
- See Also:
-
getProjectionPolicy
- Specified by:
getProjectionPolicy
in interfaceResourceObjectDefinition
- See Also:
-
hasAuxiliaryObjectClass
Description copied from interface:ResourceObjectDefinition
TODO define semantics (it's different forCompositeObjectDefinition
and the others!- Specified by:
hasAuxiliaryObjectClass
in interfaceResourceObjectDefinition
-
getAuxiliaryObjectClassMappings
- Specified by:
getAuxiliaryObjectClassMappings
in interfaceResourceObjectDefinition
- See Also:
-
getProtectedObjectPatterns
Description copied from interface:ResourceObjectDefinition
Returns compiled patterns denoting protected objects.- Specified by:
getProtectedObjectPatterns
in interfaceResourceObjectDefinition
- See Also:
-
getActivationSchemaHandling
- Specified by:
getActivationSchemaHandling
in interfaceResourceObjectDefinition
- See Also:
-
getDelineation
Description copied from interface:ResourceObjectDefinition
Returns the delineation of the set of objects belonging to this object type. Note that this tells only about information stored right in the definition bean, i.e. legacy configuration is not provided here. The complete picture is provided bySynchronizationPolicy.getDelineation()
.- Specified by:
getDelineation
in interfaceResourceObjectDefinition
-
getBaseContext
Description copied from interface:ResourceObjectDefinition
The definition of base context (resource object container). This object will be used as a base for searches for objects of this type.- Specified by:
getBaseContext
in interfaceResourceObjectDefinition
- See Also:
-
getSearchHierarchyScope
Description copied from interface:ResourceObjectDefinition
Definition of search hierarchy scope. It specifies how "deep" the search should go into the object hierarchy.- Specified by:
getSearchHierarchyScope
in interfaceResourceObjectDefinition
- See Also:
-
getVolatility
Description copied from interface:ResourceObjectDefinition
Specifies volatility of this type of resource objects, i.e. whether such an object can change when midPoint is not looking.- Specified by:
getVolatility
in interfaceResourceObjectDefinition
- See Also:
-
getDefaultInboundMappingEvaluationPhases
@Nullable default @Nullable DefaultInboundMappingEvaluationPhasesType getDefaultInboundMappingEvaluationPhases()Description copied from interface:ResourceObjectDefinition
Returns the phases in which inbound mappings are evaluated by default.- Specified by:
getDefaultInboundMappingEvaluationPhases
in interfaceResourceObjectDefinition
- See Also:
-
getLifecycleState
Description copied from interface:ResourceObjectDefinition
What lifecycle state is the (refined) object class or object type definition? Raw object class definition should always return `null` here.- Specified by:
getLifecycleState
in interfaceResourceObjectDefinition
- See Also:
-
getConfiguredAuxiliaryObjectClassNames
Description copied from interface:ResourceObjectDefinition
Returns the names of auxiliary object classes that are "statically" defined for this object type (or object class, in the future). For dynamically composed definitions (CompositeObjectDefinition
only the statically-defined ones (i.e. those from the structural definition) are returned.- Specified by:
getConfiguredAuxiliaryObjectClassNames
in interfaceResourceObjectDefinition
-
validate
Description copied from interface:ResourceObjectDefinition
Executes some basic checks on this object type. Moved from `validateObjectClassDefinition()` method inResourceTypeUtil
. TODO review this method- Specified by:
validate
in interfaceResourceObjectDefinition
- Throws:
SchemaException
-
getDefinitionBean
Description copied from interface:ResourceObjectDefinition
Returns the "raw" configuration bean for this object type.- Specified by:
getDefinitionBean
in interfaceResourceObjectDefinition
-
getRawObjectClassDefinition
Description copied from interface:ResourceObjectDefinition
Returns the raw object class definition.- Specified by:
getRawObjectClassDefinition
in interfaceResourceObjectDefinition
-
createShadowSearchQuery
@NotNull default @NotNull ObjectQuery createShadowSearchQuery(String resourceOid) throws SchemaException Description copied from interface:ResourceObjectDefinition
Creates a query for obtaining shadows related to this object class or object type. The current implementations return either: - a combination of resource OID + object class name, or - a combination of resource OID + kind + intent.- Specified by:
createShadowSearchQuery
in interfaceResourceObjectDefinition
- Throws:
SchemaException
-
getTypeIdentification
Description copied from interface:ResourceObjectDefinition
Is this definition bound to a specific resource type? If yes, this method returns its identification.- Specified by:
getTypeIdentification
in interfaceResourceObjectDefinition
-
getTypeDefinition
Description copied from interface:ResourceObjectDefinition
Is this definition bound to a specific resource type? If yes, this method returns its definition.- Specified by:
getTypeDefinition
in interfaceResourceObjectDefinition
-
isDefaultFor
Description copied from interface:ResourceObjectDefinition
Returns true if this definition can be considered as a default for the specified kind. Normally, for a type definition it means that it is marked as "default for a kind" and has the specified kind. But there is a special case ofResourceObjectClassDefinition
withResourceObjectClassDefinition.isDefaultAccountDefinition()
being `true`. It is considered to be the default forShadowKindType.ACCOUNT
. Use with care!- Specified by:
isDefaultFor
in interfaceResourceObjectDefinition
-