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 ofResourceObjectTypeDefinition
. 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 toAbstractResourceObjectDefinitionImpl
), 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:
- Serialized Form
-
-
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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(Visitor<Definition> visitor)
boolean
accept(Visitor<Definition> visitor, SmartVisitation<Definition> visitation)
protected void
addDebugDumpHeaderExtension(StringBuilder sb)
@NotNull ResourceObjectTypeDefinitionImpl
clone()
Does a shallow clone of this definition (i.e.protected ResourceObjectTypeDefinitionImpl
cloneInLayer(@NotNull LayerType layer)
PrismObject<ShadowType>
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
equals(Object o)
ResourceObjectTypeDefinition
forLayer(@NotNull LayerType layerType)
Creates a layer-specific version of this definition.@Nullable ObjectReferenceType
getArchetypeRef()
Archetype reference - not present in standalone definitions.ExpressionType
getClassificationCondition()
Temporary?<T extends CapabilityType>
TgetConfiguredCapability(Class<T> capabilityClass)
Returns the configured capability of given class, if present.@Nullable CorrelationDefinitionType
getCorrelationDefinitionBean()
Returns the correlation definition bean, if present here.String
getDebugDumpClassName()
Return a human readable name of this class suitable for logs.@Nullable QName
getDescriptionAttributeName()
Returns name of the description attribute.@Nullable QName
getDisplayNameAttributeName()
Returns name of the display name attribute.QName
getFocusTypeName()
Returns the focus type name, if present here.String
getHumanReadableName()
TODO@NotNull String
getIntent()
Intent defining this object type (along withResourceObjectTypeDefinition.getKind()
).@NotNull ShadowKindType
getKind()
Kind of objects covered by this object type.@Nullable QName
getNamingAttributeName()
Returns name of the naming attribute.@NotNull ResourceObjectClassDefinition
getObjectClassDefinition()
Returns the (raw or refined) object class definition.@NotNull QName
getObjectClassName()
Returns the name of the object class.@NotNull ResourceObjectClassDefinition
getRawObjectClassDefinition()
Returns the raw object class definition.String
getResourceOid()
This is currently used only to pass information about association in the model-impl TODO consider removal!@NotNull Collection<SynchronizationReactionDefinition>
getSynchronizationReactions()
Returns the synchronization reactions defined here.@NotNull ResourceObjectTypeDefinition
getTypeDefinition()
Is this definition bound to a specific resource type? If yes, this method returns its definition.@NotNull ResourceObjectTypeIdentification
getTypeIdentification()
Identification (kind+intent) of this object type.int
hashCode()
boolean
hasSubstitutions()
boolean
hasSynchronizationReactionsDefinition()
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
isDefaultForKind()
Is this type explicitly marked as the default object type for given kind? (using default or defaultForKind property).boolean
isDefaultForObjectClass()
Is this type explicitly marked as the default object type for given object class? (using default or defaultForObjectClass property).Boolean
isSynchronizationEnabled()
Returns the "synchronization enabled" flag value, if present here.Boolean
isSynchronizationOpportunistic()
Returns the "synchronization opportunistic" flag value, if present here.void
performFreeze()
Optional<ItemDefinition<?>>
substitution(QName name)
MutableResourceObjectClassDefinition
toMutable()
Returns an interface to mutate this definition.String
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, findItemDefinition, 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, getObjectMultiplicity, getPasswordDefinition, getPlannedRemoval, getPrimaryIdentifiers, getPrimaryIdentifiersNames, getPrismContext, getPrismObjectDefinition, getProcessing, getProjectionPolicy, getProtectedObjectPatterns, getSchemaMigrations, getSearchHierarchyScope, getSecondaryIdentifiers, getSecondaryIdentifiersNames, getSecurityPolicyRef, getStaticSubTypes, getSuperType, getTypeClass, getTypeName, getVolatility, hasAuxiliaryObjectClass, isAbstract, isContainerMarker, isDeprecated, isElaborate, isEmphasized, isEmpty, isExperimental, isListMarker, isObjectMarker, isReferenceMarker, 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, 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, getSchemaMigrations, getSchemaRegistry, getTypeClass, getTypeName, isAbstract, isDeprecated, isElaborate, isEmphasized, isExperimental, isIgnored, 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, 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
getActivationBidirectionalMappingType, getActivationFetchStrategy, getActivationSchemaHandling, getAuxiliaryDefinitions, getAuxiliaryObjectClassMappings, getBaseContext, getConfiguredAuxiliaryObjectClassNames, getDefaultInboundMappingEvaluationPhases, getDefinitionBean, getDelineation, getDescription, getDescriptionAttribute, getDisplayNameAttribute, getEnabledCapability, getNamingAttribute, getObjectMultiplicity, getPagedSearches, getPasswordDefinition, getPasswordFetchStrategy, getPasswordInbound, getPasswordOutbound, getPrismObjectDefinition, getProjectionPolicy, getProtectedObjectPatterns, getSearchHierarchyScope, getSecurityPolicyRef, getVolatility, hasAuxiliaryObjectClass, instantiate, isObjectCountingEnabled, isPagedSearchEnabled, 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 Detail
-
getTypeIdentification
@NotNull public @NotNull ResourceObjectTypeIdentification getTypeIdentification()
Description copied from interface:ResourceObjectTypeDefinition
Identification (kind+intent) of this object type.- Specified by:
getTypeIdentification
in interfaceResourceObjectDefinition
- Specified by:
getTypeIdentification
in interfaceResourceObjectTypeDefinition
-
getTypeDefinition
@NotNull public @NotNull ResourceObjectTypeDefinition 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
public boolean isDefaultFor(@NotNull @NotNull ShadowKindType kind)
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
@NotNull public @NotNull ResourceObjectClassDefinition 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
@NotNull public @NotNull ResourceObjectClassDefinition getRawObjectClassDefinition()
Description copied from interface:ResourceObjectDefinition
Returns the raw object class definition.- Specified by:
getRawObjectClassDefinition
in interfaceResourceObjectDefinition
-
getObjectClassName
@NotNull public @NotNull QName 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:
ResourceObjectTypeDefinitionType.isDefaultForObjectClass()
,ResourceObjectTypeDefinitionType.isDefault()
-
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:
ResourceObjectTypeDefinitionType.isDefaultForKind()
,ResourceObjectTypeDefinitionType.isDefault()
-
getIntent
@NotNull public @NotNull String getIntent()
Description copied from interface:ResourceObjectTypeDefinition
Intent defining this object type (along withResourceObjectTypeDefinition.getKind()
).- Specified by:
getIntent
in interfaceResourceObjectTypeDefinition
-
getKind
@NotNull public @NotNull ShadowKindType getKind()
Description copied from interface:ResourceObjectTypeDefinition
Kind of objects covered by this object type.- Specified by:
getKind
in interfaceResourceObjectTypeDefinition
-
accept
public void accept(Visitor<Definition> visitor)
- Specified by:
accept
in interfaceVisitable<Definition>
- Overrides:
accept
in classAbstractResourceObjectDefinitionImpl
-
accept
public boolean accept(Visitor<Definition> visitor, SmartVisitation<Definition> visitation)
- Specified by:
accept
in interfaceSmartVisitable<Definition>
- Overrides:
accept
in classAbstractResourceObjectDefinitionImpl
- Returns:
- false if we already was here
-
trimTo
public void trimTo(@NotNull @NotNull Collection<ItemPath> paths)
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
@NotNull public @NotNull ResourceObjectTypeDefinitionImpl clone()
Description copied from interface:ComplexTypeDefinition
Does a shallow clone of this definition (i.e. item definitions themselves are NOT cloned).- Specified by:
clone
in interfaceComplexTypeDefinition
- Specified by:
clone
in interfaceDefinition
- Specified by:
clone
in interfaceResourceObjectDefinition
- Specified by:
clone
in classAbstractResourceObjectDefinitionImpl
-
forLayer
public ResourceObjectTypeDefinition forLayer(@NotNull @NotNull LayerType layerType)
Description copied from interface:ResourceObjectDefinition
Creates a layer-specific version of this definition.- Specified by:
forLayer
in interfaceResourceObjectDefinition
- Specified by:
forLayer
in interfaceResourceObjectTypeDefinition
- Overrides:
forLayer
in classAbstractResourceObjectDefinitionImpl
-
cloneInLayer
protected ResourceObjectTypeDefinitionImpl cloneInLayer(@NotNull @NotNull LayerType layer)
- 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
public String getDebugDumpClassName()
Description copied from interface:ResourceObjectDefinition
Return a human readable name of this class suitable for logs.- Specified by:
getDebugDumpClassName
in interfaceResourceObjectDefinition
-
getHumanReadableName
public String getHumanReadableName()
Description copied from interface:ResourceObjectDefinition
TODO- Specified by:
getHumanReadableName
in interfaceResourceObjectDefinition
-
equals
public boolean equals(Object o)
- Overrides:
equals
in classAbstractResourceObjectDefinitionImpl
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classAbstractResourceObjectDefinitionImpl
-
toMutable
public MutableResourceObjectClassDefinition 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
public Optional<ItemDefinition<?>> substitution(QName name)
- Specified by:
substitution
in interfaceComplexTypeDefinition
-
getCorrelationDefinitionBean
@Nullable public @Nullable CorrelationDefinitionType getCorrelationDefinitionBean()
Description copied from interface:ResourceObjectTypeDefinition
Returns the correlation definition bean, if present here. (It may be standalone.)- Specified by:
getCorrelationDefinitionBean
in interfaceResourceObjectTypeDefinition
-
isSynchronizationEnabled
public Boolean 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
public Boolean 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
public QName getFocusTypeName()
Description copied from interface:ResourceObjectTypeDefinition
Returns the focus type name, if present here. (It may be standalone.)- Specified by:
getFocusTypeName
in interfaceResourceObjectTypeDefinition
-
getArchetypeRef
@Nullable public @Nullable ObjectReferenceType getArchetypeRef()
Description copied from interface:ResourceObjectTypeDefinition
Archetype reference - not present in standalone definitions.- Specified by:
getArchetypeRef
in interfaceResourceObjectTypeDefinition
-
getClassificationCondition
public ExpressionType 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
@Nullable public @Nullable QName getDescriptionAttributeName()
Description copied from interface:ResourceObjectDefinition
Returns name of the description attribute.- Specified by:
getDescriptionAttributeName
in interfaceResourceObjectDefinition
- See Also:
ResourceObjectDefinition.getDescriptionAttribute()
-
getNamingAttributeName
@Nullable public @Nullable QName getNamingAttributeName()
Description copied from interface:ResourceObjectDefinition
Returns name of the naming attribute.- Specified by:
getNamingAttributeName
in interfaceResourceObjectDefinition
- See Also:
ResourceObjectDefinition.getNamingAttributeName()
-
getDisplayNameAttributeName
@Nullable public @Nullable QName getDisplayNameAttributeName()
Description copied from interface:ResourceObjectDefinition
Returns name of the display name attribute.- Specified by:
getDisplayNameAttributeName
in interfaceResourceObjectDefinition
- See Also:
ResourceObjectDefinition.getDisplayNameAttribute()
-
createBlankShadow
public PrismObject<ShadowType> createBlankShadow(String resourceOid, String tag)
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
public String 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
@Nullable public <T extends CapabilityType> T getConfiguredCapability(Class<T> capabilityClass)
Description copied from interface:ResourceObjectTypeDefinition
Returns the configured capability of given class, if present.- Specified by:
getConfiguredCapability
in interfaceResourceObjectTypeDefinition
-
addDebugDumpHeaderExtension
protected void addDebugDumpHeaderExtension(StringBuilder sb)
- Overrides:
addDebugDumpHeaderExtension
in classAbstractResourceObjectDefinitionImpl
-
-