Class ResourceObjectTypeDefinitionImpl
java.lang.Object
com.evolveum.midpoint.prism.AbstractFreezable
com.evolveum.midpoint.schema.processor.AbstractResourceObjectDefinitionImpl
com.evolveum.midpoint.schema.processor.ResourceObjectTypeDefinitionImpl
- All Implemented Interfaces:
ComplexTypeDefinition
,Definition
,Freezable
,LocalItemDefinitionStore
,PrismContextSensitive
,Revivable
,SmartVisitable<Definition>
,TypeDefinition
,Visitable<Definition>
,AssociationDefinitionStore
,AttributeDefinitionStore
,IdentifiersDefinitionStore
,LayeredDefinition
,ResourceObjectDefinition
,ResourceObjectTypeDefinition
,DebugDumpable
,Serializable
,Cloneable
public final class ResourceObjectTypeDefinitionImpl
extends AbstractResourceObjectDefinitionImpl
implements ResourceObjectTypeDefinition
Default implementation of
ResourceObjectTypeDefinition
.
Definition of a type of resource objects, as defined in the `schemaHandling` section.
(The concept of object type is not present in the "raw" view, presented by a connector.
The connector sees only object classes.)
There is almost nothing specific here (compared to AbstractResourceObjectDefinitionImpl
), because starting with 4.6,
object class definitions can be refined as well. However, kind and intent are (still) specific to type definitions.- Author:
- semancik
- See Also:
-
Field Summary
Fields inherited from class com.evolveum.midpoint.schema.processor.AbstractResourceObjectDefinitionImpl
delineation
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
Method Summary
Modifier and TypeMethodDescriptionvoid
accept
(Visitor<Definition> visitor) boolean
accept
(Visitor<Definition> visitor, SmartVisitation<Definition> visitation) protected void
@NotNull ResourceObjectTypeDefinitionImpl
clone()
Returns a mutable definition.protected @NotNull ResourceObjectTypeDefinitionImpl
cloneInLayer
(@NotNull LayerType layer) Returns mutable copy.createBlankShadow
(String resourceOid, String tag) Creates a blankShadowType
object, with the attributes container having appropriate definition.@NotNull ResourceObjectTypeDefinition
deepClone
(@NotNull DeepCloneOperation operation) TODO should we really clone the definitions?boolean
@NotNull ResourceObjectTypeDefinition
forLayerMutable
(@NotNull LayerType layer) Creates a layer-specific mutable version of this definition.@Nullable ObjectReferenceType
Archetype reference - not present in standalone definitions.Temporary?<T extends CapabilityType>
TgetConfiguredCapability
(Class<T> capabilityClass) Returns the configured capability of given class, if present.@Nullable CorrelationDefinitionType
Returns the correlation definition bean, if present here.Return a human readable name of this class suitable for logs.@Nullable QName
Returns name of the description attribute.@Nullable QName
Returns name of the display name attribute.Returns the focus type name, if present here.TODO@NotNull String
Intent defining this object type (along withResourceObjectTypeDefinition.getKind()
).@NotNull ShadowKindType
getKind()
Kind of objects covered by this object type.@Nullable QName
Returns name of the naming attribute.@NotNull ResourceObjectClassDefinition
Returns the (raw or refined) object class definition.@NotNull QName
Returns the name of the object class.@NotNull ResourceObjectClassDefinition
Returns the raw object class definition.This is currently used only to pass information about association in the model-impl TODO consider removal!@NotNull Collection<SynchronizationReactionDefinition>
Returns the synchronization reactions defined here.@NotNull ResourceObjectTypeDefinition
Is this definition bound to a specific resource type? If yes, this method returns its definition.@NotNull ResourceObjectTypeIdentification
Identification (kind+intent) of this object type.int
hashCode()
boolean
boolean
Returns true if there is "synchronization reactions" definition section here (even if it's empty).boolean
isDefaultFor
(@NotNull ShadowKindType kind) Returns true if this definition can be considered as a default for the specified kind.boolean
Is this type explicitly marked as the default object type for given kind? (using default or defaultForKind property).boolean
Is this type explicitly marked as the default object type for given object class? (using default or defaultForObjectClass property).Returns the "synchronization enabled" flag value, if present here.Returns the "synchronization opportunistic" flag value, if present here.void
substitution
(QName name) Returns an interface to mutate this definition.toString()
void
trimTo
(@NotNull Collection<ItemPath> paths) Trims the definition (and any definitions it refers to) to contain only items related to given paths.Methods inherited from class com.evolveum.midpoint.schema.processor.AbstractResourceObjectDefinitionImpl
add, addDebugDumpTrailer, canRepresent, copyDefinitionDataFrom, debugDump, debugDump, findAttributeDefinition, findItemDefinition, forLayerImmutable, getActivationSchemaHandling, getAnnotation, getAnnotations, getAssociationDefinitions, getAttributeDefinitions, getAuxiliaryDefinitions, getAuxiliaryObjectClassMappings, getBaseContext, getCompileTimeClass, getConfiguredAuxiliaryObjectClassNames, getCurrentLayer, getDefaultInboundMappingEvaluationPhases, getDefaultNamespace, getDefinitionBean, getDefinitions, getDelineation, getDeprecatedSince, getDescription, getDiagrams, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getEnabledCapability, getExtensionForType, getHelp, getIgnoredNamespaces, getInstantiationOrder, getLifecycleState, getObjectMultiplicity, getPasswordDefinition, getPlannedRemoval, getPrimaryIdentifiers, getPrimaryIdentifiersNames, getPrismContext, getPrismObjectDefinition, getProcessing, getProjectionPolicy, getProtectedObjectPatterns, getRemovedSince, getSchemaMigrations, getSearchHierarchyScope, getSecondaryIdentifiers, getSecondaryIdentifiersNames, getSecurityPolicyRef, getStaticSubTypes, getSuperType, getTypeClass, getTypeName, getVolatility, hasAuxiliaryObjectClass, isAbstract, isContainerMarker, isDeprecated, isElaborate, isEmphasized, isEmpty, isExperimental, isListMarker, isObjectMarker, isReferenceMarker, isRemoved, isRuntimeSchema, isXsdAnyMarker, merge, replaceDefinition, revive, setAnnotation, setDisplayNameAttributeName, validate
Methods inherited from class com.evolveum.midpoint.prism.AbstractFreezable
freeze, freeze, freezeAll, freezeNullableList, isImmutable, isMutable
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.evolveum.midpoint.schema.processor.AssociationDefinitionStore
findAssociationDefinition, findAssociationDefinitionRequired, getAssociationDefinitions, getAssociationDefinitions, getNamesOfAssociations, getNamesOfAssociationsWithInboundExpressions, getNamesOfAssociationsWithOutboundExpressions
Methods inherited from interface com.evolveum.midpoint.schema.processor.AttributeDefinitionStore
containsAttributeDefinition, findAttributeDefinition, findAttributeDefinition, findAttributeDefinition, findAttributeDefinitionRequired, findAttributeDefinitionRequired, findAttributeDefinitionStrictlyRequired, findAttributeDefinitionStrictlyRequired, getAttributeDefinitions, getAttributeDefinitions, getNamesOfAttributesWithInboundExpressions, getNamesOfAttributesWithOutboundExpressions, hasIndexOnlyAttributes, propertyToAttribute
Methods inherited from interface com.evolveum.midpoint.prism.ComplexTypeDefinition
getDefaultNamespace, getDefinitions, getExtensionForType, getIgnoredNamespaces, getXmlAttributeDefinitions, hasOperationalOnlyItems, hasSubstitutions, isContainerMarker, isEmpty, isItemDefinitionRemoved, isListMarker, isObjectMarker, isReferenceMarker, isStrictAnyMarker, isXsdAnyMarker, itemOrSubstitution, merge
Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDump, debugDumpLazily, debugDumpLazily
Methods inherited from interface com.evolveum.midpoint.prism.Definition
debugDump, getAnnotation, getAnnotations, getDeprecatedSince, getDiagrams, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, getMutabilityFlag, getPlannedRemoval, 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, getPrimaryIdentifiers, getPrimaryIdentifiersNames, getSecondaryIdentifiers, getSecondaryIdentifiersNames, isIdentifier, isPrimaryIdentifier, isSecondaryIdentifier
Methods inherited from interface com.evolveum.midpoint.schema.processor.LayeredDefinition
getCurrentLayer
Methods inherited from interface com.evolveum.midpoint.prism.LocalItemDefinitionStore
containsItemDefinition, findContainerDefinition, findItemDefinition, findItemDefinition, findLocalItemDefinition, findLocalItemDefinition, findPropertyDefinition, findReferenceDefinition
Methods inherited from interface com.evolveum.midpoint.prism.PrismContextSensitive
getPrismContext
Methods inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectDefinition
forLayerImmutable, getActivationBidirectionalMappingType, getActivationFetchStrategy, getActivationSchemaHandling, getAuxiliaryDefinitions, getAuxiliaryObjectClassMappings, getBaseContext, getConfiguredAuxiliaryObjectClassNames, getDefaultInboundMappingEvaluationPhases, getDefinitionBean, getDelineation, getDescription, getDescriptionAttribute, getDisplayNameAttribute, getEnabledCapability, getLifecycleState, getNamingAttribute, getObjectMultiplicity, getPasswordDefinition, getPasswordFetchStrategy, getPasswordInbound, getPasswordOutbound, getPrismObjectDefinition, getProjectionPolicy, getProtectedObjectPatterns, getSearchHierarchyScope, getSecurityPolicyRef, getVolatility, hasAuxiliaryObjectClass, instantiate, matchesObjectClassName, replaceDefinition, replaceDefinition, toResourceAttributeContainerDefinition, toResourceAttributeContainerDefinition, validate
Methods inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectTypeDefinition
createShadowSearchQuery, getArchetypeOid, matches, matchesKind
Methods inherited from interface com.evolveum.midpoint.prism.TypeDefinition
canRepresent, getCompileTimeClass, getInstantiationOrder, getStaticSubTypes, getSuperType, isAssignableFrom
-
Method Details
-
getTypeIdentification
Description copied from interface:ResourceObjectTypeDefinition
Identification (kind+intent) of this object type.- Specified by:
getTypeIdentification
in interfaceResourceObjectDefinition
- Specified by:
getTypeIdentification
in interfaceResourceObjectTypeDefinition
-
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
- Specified by:
getTypeDefinition
in interfaceResourceObjectTypeDefinition
-
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
-
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
-
getRawObjectClassDefinition
Description copied from interface:ResourceObjectDefinition
Returns the raw object class definition.- Specified by:
getRawObjectClassDefinition
in interfaceResourceObjectDefinition
-
getObjectClassName
Description copied from interface:ResourceObjectDefinition
Returns the name of the object class.- Specified by:
getObjectClassName
in interfaceResourceObjectDefinition
-
isDefaultForObjectClass
public boolean isDefaultForObjectClass()Description copied from interface:ResourceObjectTypeDefinition
Is this type explicitly marked as the default object type for given object class? (using default or defaultForObjectClass property).- Specified by:
isDefaultForObjectClass
in interfaceResourceObjectTypeDefinition
- See Also:
-
isDefaultForKind
public boolean isDefaultForKind()Description copied from interface:ResourceObjectTypeDefinition
Is this type explicitly marked as the default object type for given kind? (using default or defaultForKind property).- Specified by:
isDefaultForKind
in interfaceResourceObjectTypeDefinition
- See Also:
-
getIntent
Description copied from interface:ResourceObjectTypeDefinition
Intent defining this object type (along withResourceObjectTypeDefinition.getKind()
).- Specified by:
getIntent
in interfaceResourceObjectTypeDefinition
-
getKind
Description copied from interface:ResourceObjectTypeDefinition
Kind of objects covered by this object type.- Specified by:
getKind
in interfaceResourceObjectTypeDefinition
-
accept
- Specified by:
accept
in interfaceVisitable<Definition>
- Overrides:
accept
in classAbstractResourceObjectDefinitionImpl
-
accept
- Specified by:
accept
in interfaceSmartVisitable<Definition>
- Overrides:
accept
in classAbstractResourceObjectDefinitionImpl
- Returns:
- false if we already was here
-
trimTo
Description copied from interface:ComplexTypeDefinition
Trims the definition (and any definitions it refers to) to contain only items related to given paths. USE WITH CARE. Be sure no shared definitions would be affected by this operation!- Specified by:
trimTo
in interfaceComplexTypeDefinition
- Overrides:
trimTo
in classAbstractResourceObjectDefinitionImpl
-
clone
Description copied from interface:ResourceObjectDefinition
Returns a mutable definition. BEWARE, the mutableCompositeObjectDefinition
is significantly slower than its immutable counterpart. See MID-9156.- Specified by:
clone
in interfaceComplexTypeDefinition
- Specified by:
clone
in interfaceDefinition
- Specified by:
clone
in interfaceResourceObjectDefinition
- Specified by:
clone
in classAbstractResourceObjectDefinitionImpl
-
forLayerMutable
@NotNull public @NotNull ResourceObjectTypeDefinition forLayerMutable(@NotNull @NotNull LayerType layer) Description copied from interface:ResourceObjectDefinition
Creates a layer-specific mutable version of this definition.- Specified by:
forLayerMutable
in interfaceResourceObjectDefinition
- Specified by:
forLayerMutable
in interfaceResourceObjectTypeDefinition
- Overrides:
forLayerMutable
in classAbstractResourceObjectDefinitionImpl
-
cloneInLayer
@NotNull protected @NotNull ResourceObjectTypeDefinitionImpl cloneInLayer(@NotNull @NotNull LayerType layer) Description copied from class:AbstractResourceObjectDefinitionImpl
Returns mutable copy.- Specified by:
cloneInLayer
in classAbstractResourceObjectDefinitionImpl
-
deepClone
@NotNull public @NotNull ResourceObjectTypeDefinition deepClone(@NotNull @NotNull DeepCloneOperation operation) TODO should we really clone the definitions?- Specified by:
deepClone
in interfaceComplexTypeDefinition
- Specified by:
deepClone
in interfaceResourceObjectDefinition
-
getDebugDumpClassName
Description copied from interface:ResourceObjectDefinition
Return a human readable name of this class suitable for logs.- Specified by:
getDebugDumpClassName
in interfaceResourceObjectDefinition
-
getHumanReadableName
Description copied from interface:ResourceObjectDefinition
TODO- Specified by:
getHumanReadableName
in interfaceResourceObjectDefinition
-
toString
-
equals
- Overrides:
equals
in classAbstractResourceObjectDefinitionImpl
-
hashCode
public int hashCode()- Overrides:
hashCode
in classAbstractResourceObjectDefinitionImpl
-
toMutable
Description copied from interface:Definition
Returns an interface to mutate this definition.- Specified by:
toMutable
in interfaceComplexTypeDefinition
- Specified by:
toMutable
in interfaceDefinition
-
performFreeze
public void performFreeze()- Overrides:
performFreeze
in classAbstractResourceObjectDefinitionImpl
-
hasSubstitutions
public boolean hasSubstitutions()- Specified by:
hasSubstitutions
in interfaceComplexTypeDefinition
-
substitution
- Specified by:
substitution
in interfaceComplexTypeDefinition
-
getCorrelationDefinitionBean
Description copied from interface:ResourceObjectTypeDefinition
Returns the correlation definition bean, if present here. (It may be standalone.)- Specified by:
getCorrelationDefinitionBean
in interfaceResourceObjectTypeDefinition
-
isSynchronizationEnabled
Description copied from interface:ResourceObjectTypeDefinition
Returns the "synchronization enabled" flag value, if present here. (It may be standalone.) FIXME- Specified by:
isSynchronizationEnabled
in interfaceResourceObjectTypeDefinition
-
isSynchronizationOpportunistic
Description copied from interface:ResourceObjectTypeDefinition
Returns the "synchronization opportunistic" flag value, if present here. (It may be standalone.)- Specified by:
isSynchronizationOpportunistic
in interfaceResourceObjectTypeDefinition
-
getFocusTypeName
Description copied from interface:ResourceObjectTypeDefinition
Returns the focus type name, if present here. (It may be standalone.)- Specified by:
getFocusTypeName
in interfaceResourceObjectTypeDefinition
-
getArchetypeRef
Description copied from interface:ResourceObjectTypeDefinition
Archetype reference - not present in standalone definitions.- Specified by:
getArchetypeRef
in interfaceResourceObjectTypeDefinition
-
getClassificationCondition
Description copied from interface:ResourceObjectTypeDefinition
Temporary?- Specified by:
getClassificationCondition
in interfaceResourceObjectTypeDefinition
-
hasSynchronizationReactionsDefinition
public boolean hasSynchronizationReactionsDefinition()Description copied from interface:ResourceObjectTypeDefinition
Returns true if there is "synchronization reactions" definition section here (even if it's empty).- Specified by:
hasSynchronizationReactionsDefinition
in interfaceResourceObjectTypeDefinition
-
getSynchronizationReactions
@NotNull public @NotNull Collection<SynchronizationReactionDefinition> getSynchronizationReactions()Description copied from interface:ResourceObjectTypeDefinition
Returns the synchronization reactions defined here. (They may be standalone.)- Specified by:
getSynchronizationReactions
in interfaceResourceObjectTypeDefinition
-
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
- Overrides:
createBlankShadow
in classAbstractResourceObjectDefinitionImpl
-
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
-
getConfiguredCapability
Description copied from interface:ResourceObjectTypeDefinition
Returns the configured capability of given class, if present.- Specified by:
getConfiguredCapability
in interfaceResourceObjectTypeDefinition
-
addDebugDumpHeaderExtension
- Overrides:
addDebugDumpHeaderExtension
in classAbstractResourceObjectDefinitionImpl
-