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:
AbstractTypeDefinition
,Definition
,Freezable
,LocalItemDefinitionStore
,PrismLifecycleDefinition
,PrismPresentationDefinition
,Revivable
,SmartVisitable<Definition>
,TypeDefinition
,Visitable<Definition>
,AssociationDefinitionStore
,AttributeDefinitionStore
,FrameworkNameResolver
,IdentifiersDefinitionStore
,LayeredDefinition
,ResourceObjectDefinition
,ResourceObjectInboundDefinition
,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:
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.Definition
Definition.DefinitionBuilder, Definition.DefinitionMutator
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismLifecycleDefinition
PrismLifecycleDefinition.Data, PrismLifecycleDefinition.Delegable, PrismLifecycleDefinition.Mutable
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismPresentationDefinition
PrismPresentationDefinition.Data, PrismPresentationDefinition.Delegable, PrismPresentationDefinition.Mutable
Nested classes/interfaces inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectInboundDefinition
ResourceObjectInboundDefinition.AssociationBasedItemImplementation, ResourceObjectInboundDefinition.AssociationProcessingImplementation, ResourceObjectInboundDefinition.BeanBasedItemImplementation, ResourceObjectInboundDefinition.ComplexProcessingImplementation, ResourceObjectInboundDefinition.EmptyImplementation, ResourceObjectInboundDefinition.FocusSpecification, ResourceObjectInboundDefinition.ItemInboundDefinition
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.TypeDefinition
TypeDefinition.TypeDefinitionLikeBuilder, TypeDefinition.TypeDefinitionMutator
-
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
protected void
addDebugDumpTrailer
(StringBuilder sb, int indent) @NotNull ResourceObjectTypeDefinitionImpl
clone()
Returns a mutable definition.protected @NotNull ResourceObjectTypeDefinitionImpl
cloneInLayer
(@NotNull LayerType layer) Returns mutable copy.AsResourceObjectDefinition.createBlankShadow()
but having the correct resource OID, kind/intent (if applicable), and tag set.@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.@NotNull Set<ResourceObjectTypeIdentification>
Returns the identification of all ancestors.@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 NativeObjectClassDefinition
Returns the [structural] native object class definition, typically obtained from the connector.@NotNull ResourceObjectClassDefinition
Returns the [structural] object class definition.@NotNull QName
Returns the name of the object class.@Nullable SchemaContextDefinition
@NotNull String
Very short identification, like the object class local name or the kind/intent pair.@NotNull Collection<? extends SynchronizationReactionDefinition.ObjectSynchronizationReactionDefinition>
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.boolean
int
hashCode()
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
toString()
void
trimTo
(@NotNull Collection<ItemPath> paths) Methods inherited from class com.evolveum.midpoint.schema.processor.AbstractResourceObjectDefinitionImpl
add, copyDefinitionDataFrom, debugDump, debugDump, findItemDefinition, findSimpleAttributeDefinition, forLayerImmutable, getActivationSchemaHandling, getAnnotation, getAnnotations, getAttributeDefinitions, getAuxiliaryDefinitions, getAuxiliaryObjectClassMappings, getBaseContext, getBasicResourceInformation, getConfiguredAuxiliaryObjectClassNames, getCorrelation, getCurrentLayer, getDefaultInboundMappingEvaluationPhases, getDefinitionBean, getDefinitions, getDelineation, getDeprecatedSince, getDescription, getDiagrams, getDisplayHint, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getEffectiveShadowCachingPolicy, getEnabledCapability, getHelp, getLifecycleState, getMergerIdentifier, getMergerInstance, getNaturalKeyConstituents, getNaturalKeyInstance, getObjectMultiplicity, getPasswordDefinition, getPlannedRemoval, getPrimaryIdentifiers, getPrimaryIdentifiersNames, getPrismObjectDefinition, getProjectionPolicy, getProtectedObjectPatterns, getReferenceAttributeInboundDefinition, getRemovedSince, getSchemaMigrations, getSearchHierarchyScope, getSecondaryIdentifiers, getSecondaryIdentifiersNames, getSecurityPolicyRef, getSimpleAttributeInboundDefinition, getTypeClass, getTypeName, getVolatility, hasAuxiliaryObjectClass, isAbstract, isDeprecated, isElaborate, isEmphasized, isExperimental, isOptionalCleanup, isRemoved, isRuntimeSchema, mutator, replaceDefinition, resolveFrameworkName, revive, 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.prism.AbstractTypeDefinition
getTypeName
Methods inherited from interface com.evolveum.midpoint.schema.processor.AssociationDefinitionStore
findAssociationDefinitionRequired, findAssociationDefinitionRequired, getNamesOfReferenceAttributes
Methods inherited from interface com.evolveum.midpoint.schema.processor.AttributeDefinitionStore
containsAttributeDefinition, findAttributeDefinition, findAttributeDefinition, findAttributeDefinitionRequired, findShadowAttributeDefinitionRequired, findSimpleAttributeDefinition, findSimpleAttributeDefinition, findSimpleAttributeDefinition, findSimpleAttributeDefinitionRequired, findSimpleAttributeDefinitionRequired, findSimpleAttributeDefinitionRequired, findSimpleAttributeDefinitionStrictlyRequired, findSimpleAttributeDefinitionStrictlyRequired, getAllSimpleAttributesNames, getAttributeDefinitions, getAttributeDefinitions, getSimpleAttributeDefinitions, hasIndexOnlyAttributes, instantiateAttribute
Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDump, debugDumpLazily, debugDumpLazily
Methods inherited from interface com.evolveum.midpoint.prism.Definition
checkMutableOnExposing, debugDump, getAnnotation, getAnnotations, getMergerIdentifier, getMergerInstance, getMutabilityFlag, getNaturalKeyConstituents, getNaturalKeyInstance, getTypeClass, getTypeName, isAbstract, isElaborate, isOptionalCleanup, isRuntimeSchema, mutator
Methods inherited from interface com.evolveum.midpoint.schema.processor.FrameworkNameResolver
resolveFrameworkName
Methods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable, freeze, isImmutable
Methods inherited from interface com.evolveum.midpoint.schema.processor.IdentifiersDefinitionStore
getAllIdentifiers, getAllIdentifiersNames, getPrimaryIdentifierRequired, getPrimaryIdentifiers, getPrimaryIdentifiersNames, getSecondaryIdentifierRequired, 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, getDefinitions
Methods inherited from interface com.evolveum.midpoint.prism.PrismLifecycleDefinition
getDeprecatedSince, getPlannedRemoval, getRemovedSince, getSchemaMigrations, isDeprecated, isExperimental, isRemoved
Methods inherited from interface com.evolveum.midpoint.prism.PrismPresentationDefinition
getDiagrams, getDisplayHint, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, isEmphasized
Methods inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectDefinition
assertAttached, canRepresent, composite, createBlankShadow, createBlankShadowWithPrimaryId, createPrimaryIdentification, findReferenceAttributeDefinition, forLayerImmutable, getActivationBidirectionalMappingType, getActivationFetchStrategy, getActivationSchemaHandling, getAssociationsComplexTypeDefinition, getAttributesComplexTypeDefinition, getAuxiliaryDefinitions, getAuxiliaryObjectClassMappings, getBaseContext, getBasicResourceInformation, getCompileTimeClass, getConfiguredAuxiliaryObjectClassNames, getDefaultInboundMappingEvaluationPhases, getDefinitionBean, getDelineation, getDescription, getDescriptionAttribute, getDisplayNameAttribute, getEffectiveShadowCachingPolicy, getEnabledCapability, getIdentification, getInstantiationOrder, getLifecycleState, getNamingAttribute, getObjectClassLocalName, getObjectMultiplicity, getPasswordDefinition, getPasswordFetchStrategy, getPasswordInbound, getPasswordOutbound, getPrismObjectDefinition, getProjectionPolicy, getProtectedObjectPatterns, getReferenceAttributeDefinitions, getResourceOid, getSearchHierarchyScope, getSecurityPolicyRef, getStaticSubTypes, getSuperType, getVolatility, hasAuxiliaryObjectClass, matchesObjectClassName, queryFor, replaceDefinition, replaceDefinition, toPrismObjectDefinition, toResourceAttributeContainerDefinition, toShadowAssociationsContainerDefinition, validate
Methods inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectInboundDefinition
getAttributeDefinitions, getCorrelation, getDefaultObjectRefDefinition, getReferenceAttributeInboundDefinition, getSimpleAttributeInboundDefinition
Methods inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectTypeDefinition
createShadowSearchQuery, getArchetypeOid, isThisOrDescendantOf, isThisOrDescendantOf, matches, matchesKind
Methods inherited from interface com.evolveum.midpoint.prism.TypeDefinition
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
-
getAncestorsIds
Description copied from interface:ResourceObjectTypeDefinition
Returns the identification of all ancestors. This type is not included in the list.- Specified by:
getAncestorsIds
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 [structural] object class definition.- Specified by:
getObjectClassDefinition
in interfaceResourceObjectDefinition
-
getNativeObjectClassDefinition
Description copied from interface:ResourceObjectDefinition
Returns the [structural] native object class definition, typically obtained from the connector.- Specified by:
getNativeObjectClassDefinition
in interfaceResourceObjectDefinition
-
getObjectClassName
Description copied from interface:ResourceObjectDefinition
Returns the name of the object class. Always fully qualified; currently with theSchemaConstants.NS_RI
namespace.- 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
- Specified by:
trimTo
in interfaceResourceObjectDefinition
- Overrides:
trimTo
in classAbstractResourceObjectDefinitionImpl
-
getSchemaContextDefinition
- Specified by:
getSchemaContextDefinition
in interfaceDefinition
-
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 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 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
-
performFreeze
public void performFreeze()- Overrides:
performFreeze
in classAbstractResourceObjectDefinitionImpl
-
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
-
getFocusSpecification
- Specified by:
getFocusSpecification
in interfaceResourceObjectInboundDefinition
-
getSynchronizationReactions
@NotNull public @NotNull Collection<? extends SynchronizationReactionDefinition.ObjectSynchronizationReactionDefinition> getSynchronizationReactions()Description copied from interface:ResourceObjectTypeDefinition
Returns the synchronization reactions defined here. (They may be standalone.)- Specified by:
getSynchronizationReactions
in interfaceResourceObjectInboundDefinition
- 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
-
createBlankShadowWithTag
Description copied from interface:ResourceObjectDefinition
AsResourceObjectDefinition.createBlankShadow()
but having the correct resource OID, kind/intent (if applicable), and tag set.- Specified by:
createBlankShadowWithTag
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
-
addDebugDumpTrailer
- Overrides:
addDebugDumpTrailer
in classAbstractResourceObjectDefinitionImpl
-
getShortIdentification
Description copied from interface:ResourceObjectDefinition
Very short identification, like the object class local name or the kind/intent pair.- Specified by:
getShortIdentification
in interfaceResourceObjectDefinition
-
hasAnyInbounds
public boolean hasAnyInbounds()- Specified by:
hasAnyInbounds
in interfaceResourceObjectInboundDefinition
-