Class ResourceObjectClassDefinitionImpl
java.lang.Object
com.evolveum.midpoint.prism.AbstractFreezable
com.evolveum.midpoint.schema.processor.AbstractResourceObjectDefinitionImpl
com.evolveum.midpoint.schema.processor.ResourceObjectClassDefinitionImpl
- All Implemented Interfaces:
AbstractTypeDefinition
,Definition
,Freezable
,LocalItemDefinitionStore
,PrismLifecycleDefinition
,PrismPresentationDefinition
,Revivable
,SchemaLookup.Aware
,SmartVisitable<Definition>
,TypeDefinition
,Visitable<Definition>
,AssociationDefinitionStore
,AttributeDefinitionStore
,FrameworkNameResolver
,IdentifiersDefinitionStore
,LayeredDefinition
,ResourceObjectClassDefinition
,ResourceObjectDefinition
,ResourceObjectInboundDefinition
,DebugDumpable
,Serializable
,Cloneable
public class ResourceObjectClassDefinitionImpl
extends AbstractResourceObjectDefinitionImpl
implements ResourceObjectClassDefinition
Default implementation of
ResourceObjectClassDefinition
.
TODO should we have subclasses for raw/refined variants? Maybe.- 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.ResourceObjectClassDefinition
ResourceObjectClassDefinition.ResourceObjectClassDefinitionMutator
Nested classes/interfaces inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectInboundDefinition
ResourceObjectInboundDefinition.AssociationBasedItemImplementation, ResourceObjectInboundDefinition.AssociationSynchronizationImplementation, 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 TypeMethodDescriptionprotected void
protected void
addDebugDumpTrailer
(StringBuilder sb, int indent) @NotNull ResourceObjectClassDefinitionImpl
clone()
Returns a mutable definition.protected @NotNull ResourceObjectClassDefinitionImpl
cloneInLayer
(@NotNull LayerType layer) Returns mutable copy.create
(@NotNull BasicResourceInformation basicResourceInformation, @NotNull NativeObjectClassDefinition nativeObjectClassDefinition, @Nullable ResourceObjectTypeDefinitionType definitionBean) @NotNull ResourceObjectClassDefinition
deepClone
(@NotNull DeepCloneOperation operation) Returns a mutable definition.boolean
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.TODO@Nullable ResourceLastLoginTimestampDefinitionType
@Nullable QName
Returns name of the naming attribute.@NotNull NativeObjectClassDefinition
Returns the [structural] native object class definition, typically obtained from the connector.Returns the native object class name.@NotNull ResourceObjectClassDefinition
Returns the [structural] object class definition.@NotNull QName
Returns the name of the object class.@Nullable ResourcePasswordDefinitionType
@Nullable SchemaContextDefinition
@NotNull String
Very short identification, like the object class local name or the kind/intent pair.@NotNull Collection<? extends SynchronizationReactionDefinition>
@Nullable ResourceObjectTypeDefinition
Is this definition bound to a specific resource type?@Nullable ResourceObjectTypeIdentification
Is this definition bound to a specific resource type?int
hashCode()
boolean
Returns `true` if there are really any refinements (i.e. a refinement bean exists, even if it can be effectively empty, besides obligatory object class name reference).boolean
Is this an auxiliary object class, i.e., a class that can be attached to an object that already holds the structural object class?boolean
Indicates whether definition is the default account definition.boolean
isDefaultFor
(@NotNull ShadowKindType kind) Returns true if this definition can be considered as a default for the specified kind.boolean
TODOboolean
isRaw()
Returns `true` if this definition is a part of the raw schema.void
setInstantiationOrder
(Integer order) toString()
Methods inherited from class com.evolveum.midpoint.schema.processor.AbstractResourceObjectDefinitionImpl
accept, accept, add, copyDefinitionDataFrom, debugDump, debugDump, findAssociationDefinition, findItemDefinition, findSimpleAttributeDefinition, forLayerImmutable, forLayerMutable, getActivationSchemaHandling, getAnnotation, getAnnotations, getAssociationDefinitions, getAttributeDefinitions, getAttributesVolatileOnAddOperation, getAttributesVolatileOnModifyOperation, 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, getPlannedRemoval, getPrimaryIdentifiers, getPrimaryIdentifiersNames, getPrismObjectDefinition, getProjectionPolicy, getReferenceAttributeInboundDefinition, getRemovedSince, getSchemaMigrations, getSearchHierarchyScope, getSecondaryIdentifiers, getSecondaryIdentifiersNames, getShadowMarkingRules, getSimpleAttributeInboundDefinition, getTypeClass, getTypeName, getVolatility, hasAuxiliaryObjectClass, isAbstract, isDeprecated, isElaborate, isEmphasized, isExperimental, isOptionalCleanup, isRemoved, isRuntimeSchema, mutator, performFreeze, replaceAttributeDefinition, resolveFrameworkName, revive, setSystemDefaultPolicy, trimAttributesTo, 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
findAssociationDefinition, findAssociationDefinitionRequired, findAssociationDefinitionRequired, getAssociationDefinitions, getNamesOfAssociations
Methods inherited from interface com.evolveum.midpoint.schema.processor.AttributeDefinitionStore
containsAttributeDefinition, findAttributeDefinition, findAttributeDefinition, findAttributeDefinitionRequired, findAttributeDefinitionRequired, findAttributeDefinitionStrictlyRequired, findAttributeDefinitionStrictlyRequired, findReferenceAttributeDefinitionRequired, findReferenceAttributeDefinitionRequired, findShadowAttributeDefinitionRequired, findSimpleAttributeDefinition, findSimpleAttributeDefinition, findSimpleAttributeDefinition, findSimpleAttributeDefinitionRequired, findSimpleAttributeDefinitionRequired, findSimpleAttributeDefinitionRequired, findSimpleAttributeDefinitionStrictlyRequired, findSimpleAttributeDefinitionStrictlyRequired, getAllSimpleAttributesNames, getAttributeDefinitions, getAttributeDefinitions, getAttributeNames, getReferenceAttributesNames, 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.ResourceObjectClassDefinition
createShadowSearchQuery
Methods inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectDefinition
areCredentialsCached, areCredentialsCachedLegacy, assertAttached, canRepresent, composite, createBlankShadow, createBlankShadowWithPrimaryId, createBlankShadowWithTag, createPrimaryIdentification, findReferenceAttributeDefinition, forLayerImmutable, forLayerMutable, getActivationBidirectionalMappingType, getActivationFetchStrategy, getActivationSchemaHandling, getAssociationDefinitionsFor, getAssociationsComplexTypeDefinition, getAttributesComplexTypeDefinition, getAttributesVolatileOnAddOperation, getAttributesVolatileOnModifyOperation, getAuxiliaryDefinitions, getAuxiliaryObjectClassMappings, getBaseContext, getBasicResourceInformation, getCompileTimeClass, getConfiguredAuxiliaryObjectClassNames, getDefaultInboundMappingEvaluationPhases, getDefaultOperationPolicyOid, getDefinitionBean, getDelineation, getDescription, getDescriptionAttribute, getDisplayNameAttribute, getEffectiveShadowCachingPolicy, getEnabledCapability, getIdentification, getInstantiationOrder, getLastLoginTimestampFetchStrategy, getLifecycleState, getNamingAttribute, getObjectClassLocalName, getObjectMultiplicity, getPasswordFetchStrategy, getPasswordInbound, getPasswordOutbound, getPrismObjectDefinition, getProjectionPolicy, getReferenceAttributeDefinitions, getReferenceAttributesComplexTypeDefinition, getResourceOid, getSearchHierarchyScope, getShadowMarkingRules, getSimpleAttributesComplexTypeDefinition, getStaticSubTypes, getSuperType, getVolatility, hasAuxiliaryObjectClass, isActivationCached, isAuxiliaryObjectClassPropertyCached, isCachingEnabled, isEffectivelyCached, matchesObjectClassName, queryFor, replaceAttributeDefinition, replaceAttributeDefinition, toPrismObjectDefinition, toShadowAssociationsContainerDefinition, toShadowAttributesContainerDefinition, trimAttributesTo, validate
Methods inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectInboundDefinition
getAttributeDefinitions, getCorrelation, getReferenceAttributeInboundDefinition, getSimpleAttributeInboundDefinition
Methods inherited from interface com.evolveum.midpoint.prism.schema.SchemaLookup.Aware
schemaLookup
Methods inherited from interface com.evolveum.midpoint.prism.SmartVisitable
accept
Methods inherited from interface com.evolveum.midpoint.prism.TypeDefinition
isAssignableFrom
-
Method Details
-
create
public static ResourceObjectClassDefinitionImpl create(@NotNull @NotNull BasicResourceInformation basicResourceInformation, @NotNull @NotNull NativeObjectClassDefinition nativeObjectClassDefinition, @Nullable @Nullable ResourceObjectTypeDefinitionType definitionBean) throws ConfigurationException, SchemaException -
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
-
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
-
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
-
getDescriptionAttributeName
Description copied from interface:ResourceObjectDefinition
Returns name of the description attribute.- Specified by:
getDescriptionAttributeName
in interfaceResourceObjectDefinition
- See Also:
-
getNativeObjectClassName
Description copied from interface:ResourceObjectClassDefinition
Returns the native object class name. Native object class is the name of the object class as it is seen by the resource itself. The name of the object class used in midPoint may be constrained by XSD or other syntax and therefore may be "mangled" to conform to such syntax. The _native object class_ value will contain original, un-mangled name (if available). Returns null if there is no native object class. The exception should be never thrown unless there is some bug in the code. The validation of model consistency should be done at the time of schema parsing.- Specified by:
getNativeObjectClassName
in interfaceResourceObjectClassDefinition
- Returns:
- native object class
-
isAuxiliary
public boolean isAuxiliary()Description copied from interface:ResourceObjectClassDefinition
Is this an auxiliary object class, i.e., a class that can be attached to an object that already holds the structural object class? This is originally an LDAP concept, but it may be applicable to other systems as well.- Specified by:
isAuxiliary
in interfaceResourceObjectClassDefinition
-
isEmbedded
public boolean isEmbedded()Description copied from interface:ResourceObjectClassDefinition
TODO- Specified by:
isEmbedded
in interfaceResourceObjectClassDefinition
-
isDefaultAccountDefinition
public boolean isDefaultAccountDefinition()Description copied from interface:ResourceObjectClassDefinition
Indicates whether definition is the default account definition. (This feature is present for "dumb" resource definition that are completely without `schemaHandling` part.) This is a way how a resource connector may suggest applicable object classes. Currently the only use of this flag is that ConnId `pass:[__ACCOUNT__]` is declared as a default for the kind of `ACCOUNT`. Originally, this property was called `defaultInAKind` and marked the object class as being default for given kind. At that time, the kind was part of object class definition. This is no longer the case, therefore also this property is renamed - and is available only for account-like object classes. In the future we may put those things (kind + default-in-a-kind) back, if needed.- Specified by:
isDefaultAccountDefinition
in interfaceResourceObjectClassDefinition
-
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 interfaceResourceObjectClassDefinition
- Specified by:
clone
in interfaceResourceObjectDefinition
- Specified by:
clone
in classAbstractResourceObjectDefinitionImpl
-
cloneInLayer
@NotNull protected @NotNull ResourceObjectClassDefinitionImpl cloneInLayer(@NotNull @NotNull LayerType layer) Description copied from class:AbstractResourceObjectDefinitionImpl
Returns mutable copy.- Specified by:
cloneInLayer
in classAbstractResourceObjectDefinitionImpl
-
setInstantiationOrder
-
deepClone
@NotNull public @NotNull ResourceObjectClassDefinition deepClone(@NotNull @NotNull DeepCloneOperation operation) Description copied from interface:ResourceObjectDefinition
Returns a mutable definition. BEWARE, the mutableCompositeObjectDefinition
is significantly slower than its immutable counterpart. See MID-9156.- Specified by:
deepClone
in interfaceResourceObjectClassDefinition
- Specified by:
deepClone
in interfaceResourceObjectDefinition
-
getSecurityPolicyRef
- Specified by:
getSecurityPolicyRef
in interfaceResourceObjectDefinition
- Overrides:
getSecurityPolicyRef
in classAbstractResourceObjectDefinitionImpl
- See Also:
-
isRaw
public boolean isRaw()Description copied from interface:ResourceObjectClassDefinition
Returns `true` if this definition is a part of the raw schema. Note that if it's part of refined schema (but not refined in any way) the return value is `true`. See alsoResourceObjectClassDefinition.hasRefinements()
.- Specified by:
isRaw
in interfaceResourceObjectClassDefinition
-
hasRefinements
public boolean hasRefinements()Description copied from interface:ResourceObjectClassDefinition
Returns `true` if there are really any refinements (i.e. a refinement bean exists, even if it can be effectively empty, besides obligatory object class name reference).- Specified by:
hasRefinements
in interfaceResourceObjectClassDefinition
-
equals
- Overrides:
equals
in classAbstractResourceObjectDefinitionImpl
-
hashCode
public int hashCode()- Overrides:
hashCode
in classAbstractResourceObjectDefinitionImpl
-
getPasswordDefinition
Description copied from interface:ResourceObjectDefinition
- Specified by:
getPasswordDefinition
in interfaceResourceObjectDefinition
- Overrides:
getPasswordDefinition
in classAbstractResourceObjectDefinitionImpl
-
getLastLoginTimestampDefinition
@Nullable public @Nullable ResourceLastLoginTimestampDefinitionType getLastLoginTimestampDefinition()Description copied from interface:ResourceObjectDefinition
- Specified by:
getLastLoginTimestampDefinition
in interfaceResourceObjectDefinition
- Overrides:
getLastLoginTimestampDefinition
in classAbstractResourceObjectDefinitionImpl
-
getHumanReadableName
Description copied from interface:ResourceObjectDefinition
TODO- Specified by:
getHumanReadableName
in interfaceResourceObjectDefinition
-
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
-
toString
-
getDebugDumpClassName
Description copied from interface:ResourceObjectDefinition
Return a human readable name of this class suitable for logs.- Specified by:
getDebugDumpClassName
in interfaceResourceObjectDefinition
-
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
-
getFocusSpecification
- Specified by:
getFocusSpecification
in interfaceResourceObjectInboundDefinition
-
getSynchronizationReactions
@NotNull public @NotNull Collection<? extends SynchronizationReactionDefinition> getSynchronizationReactions()- Specified by:
getSynchronizationReactions
in interfaceResourceObjectInboundDefinition
-