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,ResourceObjectInboundProcessingDefinition,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.DefinitionMutatorNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismLifecycleDefinition
PrismLifecycleDefinition.Data, PrismLifecycleDefinition.Delegable, PrismLifecycleDefinition.MutableNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismPresentationDefinition
PrismPresentationDefinition.Data, PrismPresentationDefinition.Delegable, PrismPresentationDefinition.MutableNested classes/interfaces inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectClassDefinition
ResourceObjectClassDefinition.ResourceObjectClassDefinitionMutatorNested classes/interfaces inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectInboundProcessingDefinition
ResourceObjectInboundProcessingDefinition.AssociationBasedItemImplementation, ResourceObjectInboundProcessingDefinition.AssociationSynchronizationImplementation, ResourceObjectInboundProcessingDefinition.CompleteItemInboundDefinition, ResourceObjectInboundProcessingDefinition.FocusSpecification, ResourceObjectInboundProcessingDefinition.ItemInboundProcessingDefinitionNested 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
delineationFields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected voidaddDebugDumpTrailer(StringBuilder sb, int indent) @NotNull ResourceObjectClassDefinitionImplclone()Returns a mutable definition.protected @NotNull ResourceObjectClassDefinitionImplcloneInLayer(@NotNull LayerType layer) Returns mutable copy.create(@NotNull BasicResourceInformation basicResourceInformation, @NotNull NativeObjectClassDefinition nativeObjectClassDefinition, @Nullable ResourceObjectTypeDefinitionType definitionBean) @NotNull ResourceObjectClassDefinitiondeepClone(@NotNull DeepCloneOperation operation) Returns a mutable definition.booleanReturn a human readable name of this class suitable for logs.@Nullable QNameReturns name of the description attribute.@Nullable QNameReturns name of the display name attribute.@NotNull ResourceObjectDefinitionThe effective definition for this object class.TODO@Nullable ResourceLastLoginTimestampDefinitionType@Nullable QNameReturns name of the naming attribute.@NotNull NativeObjectClassDefinitionReturns the [structural] native object class definition, typically obtained from the connector.Returns the native object class name.@NotNull ResourceObjectClassDefinitionReturns the [structural] object class definition.@NotNull QNameReturns the name of the object class.@Nullable ResourcePasswordDefinitionType@Nullable SchemaContextDefinition@NotNull StringVery short identification, like the object class local name or the kind/intent pair.@NotNull Collection<? extends SynchronizationReactionDefinition>@Nullable ResourceObjectTypeDefinitionIs this definition bound to a specific resource type? If yes, this method returns its definition.@Nullable ResourceObjectTypeIdentificationIs this definition bound to a specific resource type? If yes, this method returns its identification.inthashCode()booleanReturns `true` if there are really any refinements (i.e.booleanIs 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.booleanIndicates whether definition is the default account definition.booleanisDefaultFor(@NotNull ShadowKindType kind) Returns true if this definition can be considered as a default for the specified kind.booleanIs this object class embedded, i.e., meant to implement complex associations?booleanisRaw()Returns `true` if this definition is a part of the raw schema.protected voidvoidsetInstantiationOrder(Integer order) toString()Methods inherited from class com.evolveum.midpoint.schema.processor.AbstractResourceObjectDefinitionImpl
accept, accept, add, copyDefinitionDataFrom, debugDump, debugDump, findAssociationDefinition, findAttributeDefinition, findItemDefinition, findLocalItemDefinition, findSimpleAttributeDefinition, forLayerImmutable, forLayerMutable, getActivationSchemaHandling, getAnnotation, getAnnotations, getAssociationDefinitions, getAttributeDefinitions, getAttributesVolatileOnAddOperation, getAttributesVolatileOnModifyOperation, getAuxiliaryDefinitions, getAuxiliaryObjectClassInboundMappings, getAuxiliaryObjectClassMappings, getBaseContext, getBasicResourceInformation, getConfiguredAuxiliaryObjectClassNames, getCorrelation, getCurrentLayer, getDefaultInboundMappingEvaluationPhases, getDefinitionBean, getDefinitions, getDelineation, getDeprecatedSince, getDescription, getDiagrams, getDisplayHint, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getEffectiveShadowCachingPolicy, getEnabledCapability, getHelp, getItemInboundDefinitions, getLifecycleState, getMergerIdentifier, getMergerInstance, getNaturalKeyConstituents, getNaturalKeyInstance, getObjectMultiplicity, getPlannedRemoval, getPrimaryIdentifiers, getPrimaryIdentifiersNames, getPrismObjectDefinition, getProjectionPolicy, getRemovedSince, getSchemaMigrations, getSearchHierarchyScope, getSecondaryIdentifiers, getSecondaryIdentifiersNames, getShadowMarkingRules, getTypeClass, getTypeName, getVolatility, hasAuxiliaryObjectClass, isAbstract, isDeprecated, isElaborate, isEmphasized, isExperimental, isOptionalCleanup, isRemoved, isRuntimeSchema, mutator, replaceAttributeDefinition, resolveFrameworkName, revive, setSystemDefaultPolicy, trimAttributesTo, validateMethods inherited from class com.evolveum.midpoint.prism.AbstractFreezable
freeze, freeze, freezeAll, freezeNullableList, isImmutable, isMutableMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.evolveum.midpoint.prism.AbstractTypeDefinition
getTypeNameMethods inherited from interface com.evolveum.midpoint.schema.processor.AssociationDefinitionStore
findAssociationDefinition, findAssociationDefinitionRequired, findAssociationDefinitionRequired, getAssociationDefinitions, getNamesOfAssociationsMethods 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, instantiateAttributeMethods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDump, debugDumpLazily, debugDumpLazilyMethods inherited from interface com.evolveum.midpoint.prism.Definition
checkMutableOnExposing, debugDump, getAnnotation, getAnnotations, getMergerIdentifier, getMergerInstance, getMutabilityFlag, getNaturalKeyConstituents, getNaturalKeyInstance, getTypeClass, getTypeName, isAbstract, isElaborate, isOptionalCleanup, isRuntimeSchema, mutatorMethods inherited from interface com.evolveum.midpoint.schema.processor.FrameworkNameResolver
resolveFrameworkNameMethods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable, freeze, isImmutableMethods inherited from interface com.evolveum.midpoint.schema.processor.IdentifiersDefinitionStore
getAllIdentifiers, getAllIdentifiersNames, getPrimaryIdentifierRequired, getPrimaryIdentifiers, getPrimaryIdentifiersNames, getSecondaryIdentifierRequired, getSecondaryIdentifiers, getSecondaryIdentifiersNames, isIdentifier, isPrimaryIdentifier, isSecondaryIdentifierMethods inherited from interface com.evolveum.midpoint.schema.processor.LayeredDefinition
getCurrentLayerMethods inherited from interface com.evolveum.midpoint.prism.LocalItemDefinitionStore
containsItemDefinition, findContainerDefinition, findItemDefinition, findItemDefinition, findLocalItemDefinition, findLocalItemDefinition, findLocalItemDefinitionByIteration, findPropertyDefinition, findReferenceDefinition, getDefinitionsMethods inherited from interface com.evolveum.midpoint.prism.PrismLifecycleDefinition
getDeprecatedSince, getPlannedRemoval, getRemovedSince, getSchemaMigrations, isDeprecated, isExperimental, isRemovedMethods inherited from interface com.evolveum.midpoint.prism.PrismPresentationDefinition
getDiagrams, getDisplayHint, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, isEmphasizedMethods inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectClassDefinition
createShadowSearchQueryMethods inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectDefinition
areCredentialsCached, areCredentialsCachedLegacy, assertAttached, canRepresent, composite, createBlankShadow, createBlankShadowWithPrimaryId, createBlankShadowWithTag, createPrimaryIdentification, findReferenceAttributeDefinition, forLayerImmutable, forLayerMutable, getActivationBidirectionalMappingType, getActivationFetchStrategy, getActivationInboundMappings, getActivationSchemaHandling, getAssociationDefinitionsFor, getAssociationsComplexTypeDefinition, getAttributesComplexTypeDefinition, getAttributesVolatileOnAddOperation, getAttributesVolatileOnModifyOperation, getAuxiliaryDefinitions, getAuxiliaryObjectClassMappings, getAuxiliaryObjectClassNameForAttribute, getBaseContext, getBasicResourceInformation, getCompileTimeClass, getConfiguredAuxiliaryObjectClassNames, getDefaultInboundMappingEvaluationPhases, getDefaultOperationPolicyOid, getDefinitionBean, getDelineation, getDescription, getDescriptionAttribute, getDisplayNameAttribute, getEffectiveShadowCachingPolicy, getEnabledCapability, getIdentification, getInstantiationOrder, getLastLoginTimestampFetchStrategy, getLifecycleState, getNamingAttribute, getObjectClassLocalName, getObjectMultiplicity, getPasswordFetchStrategy, getPasswordInboundMappings, getPasswordOutboundMappings, getPrismObjectDefinition, getProjectionPolicy, getReferenceAttributeDefinitions, getReferenceAttributesComplexTypeDefinition, getResourceOid, getSearchHierarchyScope, getShadowMarkingRules, getSimpleAttributesComplexTypeDefinition, getStaticSubTypes, getSuperType, getVolatility, hasAuxiliaryObjectClass, isActivationCached, isAuxiliaryObjectClassPropertyCached, isCachingEnabled, isEffectivelyCached, matchesObjectClassName, queryFor, replaceAttributeDefinition, replaceAttributeDefinition, shouldUpdateCachingMetadata, toPrismObjectDefinition, toShadowAssociationsContainerDefinition, toShadowAttributesContainerDefinition, trimAttributesTo, validateMethods inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectInboundProcessingDefinition
getAuxiliaryObjectClassInboundMappings, getCorrelation, getItemInboundDefinitionsMethods inherited from interface com.evolveum.midpoint.prism.schema.SchemaLookup.Aware
schemaLookupMethods inherited from interface com.evolveum.midpoint.prism.SmartVisitable
acceptMethods 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:ResourceObjectDefinitionReturns the name of the object class. Always fully qualified; currently with theSchemaConstants.NS_RInamespace.- Specified by:
getObjectClassNamein interfaceResourceObjectDefinition
-
getObjectClassDefinition
Description copied from interface:ResourceObjectDefinitionReturns the [structural] object class definition.- Specified by:
getObjectClassDefinitionin interfaceResourceObjectDefinition
-
getNativeObjectClassDefinition
Description copied from interface:ResourceObjectDefinitionReturns the [structural] native object class definition, typically obtained from the connector.- Specified by:
getNativeObjectClassDefinitionin interfaceResourceObjectDefinition
-
getNamingAttributeName
Description copied from interface:ResourceObjectDefinitionReturns name of the naming attribute.- Specified by:
getNamingAttributeNamein interfaceResourceObjectDefinition- See Also:
-
getDisplayNameAttributeName
Description copied from interface:ResourceObjectDefinitionReturns name of the display name attribute.- Specified by:
getDisplayNameAttributeNamein interfaceResourceObjectDefinition
-
getDescriptionAttributeName
Description copied from interface:ResourceObjectDefinitionReturns name of the description attribute.- Specified by:
getDescriptionAttributeNamein interfaceResourceObjectDefinition- See Also:
-
getNativeObjectClassName
Description copied from interface:ResourceObjectClassDefinitionReturns 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:
getNativeObjectClassNamein interfaceResourceObjectClassDefinition- Returns:
- native object class
-
isAuxiliary
public boolean isAuxiliary()Description copied from interface:ResourceObjectClassDefinitionIs 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:
isAuxiliaryin interfaceResourceObjectClassDefinition
-
isEmbedded
public boolean isEmbedded()Description copied from interface:ResourceObjectClassDefinitionIs this object class embedded, i.e., meant to implement complex associations?- Specified by:
isEmbeddedin interfaceResourceObjectClassDefinition- See Also:
-
isDefaultAccountDefinition
public boolean isDefaultAccountDefinition()Description copied from interface:ResourceObjectClassDefinitionIndicates 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:
isDefaultAccountDefinitionin interfaceResourceObjectClassDefinition
-
getSchemaContextDefinition
- Specified by:
getSchemaContextDefinitionin interfaceDefinition
-
clone
Description copied from interface:ResourceObjectDefinitionReturns a mutable definition. BEWARE, the mutableCompositeObjectDefinitionis significantly slower than its immutable counterpart. See MID-9156.- Specified by:
clonein interfaceDefinition- Specified by:
clonein interfaceResourceObjectClassDefinition- Specified by:
clonein interfaceResourceObjectDefinition- Specified by:
clonein classAbstractResourceObjectDefinitionImpl
-
cloneInLayer
@NotNull protected @NotNull ResourceObjectClassDefinitionImpl cloneInLayer(@NotNull @NotNull LayerType layer) Description copied from class:AbstractResourceObjectDefinitionImplReturns mutable copy.- Specified by:
cloneInLayerin classAbstractResourceObjectDefinitionImpl
-
setInstantiationOrder
-
deepClone
@NotNull public @NotNull ResourceObjectClassDefinition deepClone(@NotNull @NotNull DeepCloneOperation operation) Description copied from interface:ResourceObjectDefinitionReturns a mutable definition. BEWARE, the mutableCompositeObjectDefinitionis significantly slower than its immutable counterpart. See MID-9156.- Specified by:
deepClonein interfaceResourceObjectClassDefinition- Specified by:
deepClonein interfaceResourceObjectDefinition
-
getEffectiveDefinition
Description copied from interface:ResourceObjectClassDefinitionThe effective definition for this object class. It may be the same as this definition, or it may be the "default for object class" type definition (better to avoid - see MID-10309). TODO remove?- Specified by:
getEffectiveDefinitionin interfaceResourceObjectClassDefinition
-
getSecurityPolicyRef
- Specified by:
getSecurityPolicyRefin interfaceResourceObjectDefinition- Overrides:
getSecurityPolicyRefin classAbstractResourceObjectDefinitionImpl- See Also:
-
isRaw
public boolean isRaw()Description copied from interface:ResourceObjectClassDefinitionReturns `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:
isRawin interfaceResourceObjectClassDefinition
-
hasRefinements
public boolean hasRefinements()Description copied from interface:ResourceObjectClassDefinitionReturns `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:
hasRefinementsin interfaceResourceObjectClassDefinition
-
equals
- Overrides:
equalsin classAbstractResourceObjectDefinitionImpl
-
hashCode
public int hashCode()- Overrides:
hashCodein classAbstractResourceObjectDefinitionImpl
-
getPasswordDefinition
Description copied from interface:ResourceObjectDefinition- Specified by:
getPasswordDefinitionin interfaceResourceObjectDefinition- Overrides:
getPasswordDefinitionin classAbstractResourceObjectDefinitionImpl
-
getLastLoginTimestampDefinition
@Nullable public @Nullable ResourceLastLoginTimestampDefinitionType getLastLoginTimestampDefinition()Description copied from interface:ResourceObjectDefinition- Specified by:
getLastLoginTimestampDefinitionin interfaceResourceObjectDefinition- Overrides:
getLastLoginTimestampDefinitionin classAbstractResourceObjectDefinitionImpl
-
getHumanReadableName
Description copied from interface:ResourceObjectDefinitionTODO- Specified by:
getHumanReadableNamein interfaceResourceObjectDefinition
-
getTypeIdentification
Description copied from interface:ResourceObjectDefinitionIs this definition bound to a specific resource type? If yes, this method returns its identification.- Specified by:
getTypeIdentificationin interfaceResourceObjectDefinition
-
getTypeDefinition
Description copied from interface:ResourceObjectDefinitionIs this definition bound to a specific resource type? If yes, this method returns its definition.- Specified by:
getTypeDefinitionin interfaceResourceObjectDefinition
-
isDefaultFor
Description copied from interface:ResourceObjectDefinitionReturns 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 ofResourceObjectClassDefinitionwithResourceObjectClassDefinition.isDefaultAccountDefinition()being `true`. It is considered to be the default forShadowKindType.ACCOUNT. Use with care!- Specified by:
isDefaultForin interfaceResourceObjectDefinition
-
toString
-
getDebugDumpClassName
Description copied from interface:ResourceObjectDefinitionReturn a human readable name of this class suitable for logs.- Specified by:
getDebugDumpClassNamein interfaceResourceObjectDefinition
-
addDebugDumpHeaderExtension
- Overrides:
addDebugDumpHeaderExtensionin classAbstractResourceObjectDefinitionImpl
-
addDebugDumpTrailer
- Overrides:
addDebugDumpTrailerin classAbstractResourceObjectDefinitionImpl
-
getShortIdentification
Description copied from interface:ResourceObjectDefinitionVery short identification, like the object class local name or the kind/intent pair.- Specified by:
getShortIdentificationin interfaceResourceObjectDefinition
-
getFocusSpecification
@NotNull public @NotNull ResourceObjectInboundProcessingDefinition.FocusSpecification getFocusSpecification()- Specified by:
getFocusSpecificationin interfaceResourceObjectInboundProcessingDefinition
-
getSynchronizationReactions
@NotNull public @NotNull Collection<? extends SynchronizationReactionDefinition> getSynchronizationReactions()- Specified by:
getSynchronizationReactionsin interfaceResourceObjectInboundProcessingDefinition
-
performFreeze
protected void performFreeze()- Overrides:
performFreezein classAbstractResourceObjectDefinitionImpl
-