Interface ObjectClassComplexTypeDefinition
-
- All Superinterfaces:
Cloneable
,ComplexTypeDefinition
,DebugDumpable
,Definition
,Freezable
,LocalDefinitionStore
,PrismContextSensitive
,Revivable
,Serializable
,SmartVisitable<Definition>
,TypeDefinition
,Visitable<Definition>
- All Known Subinterfaces:
CompositeRefinedObjectClassDefinition
,LayerRefinedObjectClassDefinition
,MutableObjectClassComplexTypeDefinition
,ObjectClassTypeDefinitionDelegator
,RefinedObjectClassDefinition
- All Known Implementing Classes:
CompositeRefinedObjectClassDefinitionImpl
,LayerRefinedObjectClassDefinitionImpl
,ObjectClassComplexTypeDefinitionImpl
,RefinedObjectClassDefinitionImpl
public interface ObjectClassComplexTypeDefinition extends ComplexTypeDefinition
Describes a resource object class. Basically, it is a collection of resource attributes. No other items should be there.
-
-
Field Summary
-
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description @NotNull ObjectClassComplexTypeDefinition
clone()
Does a shallow clone of this definition (i.e.default ObjectQuery
createShadowSearchQuery(String resourceOid)
@NotNull ObjectClassComplexTypeDefinition
deepClone(Map<QName,ComplexTypeDefinition> ctdMap, Map<QName,ComplexTypeDefinition> onThisPath, Consumer<ItemDefinition> postCloneAction)
Does a deep clone of this definition.default <X> ResourceAttributeDefinition<X>
findAttributeDefinition(String name)
default <X> @Nullable ResourceAttributeDefinition<X>
findAttributeDefinition(QName name)
Finds a attribute definition by looking at the property name.default <X> @Nullable ResourceAttributeDefinition<X>
findAttributeDefinition(QName name, boolean caseInsensitive)
Finds a attribute definition by looking at the property name; not considering the case.default Collection<? extends ResourceAttributeDefinition<?>>
getAllIdentifiers()
Returns both primary and secondary identifiers.@NotNull Collection<? extends ResourceAttributeDefinition<?>>
getAttributeDefinitions()
Returns all attribute definitions as an unmodifiable collection.<X> ResourceAttributeDefinition<X>
getDescriptionAttribute()
Returns the definition of description attribute of a resource object.<X> ResourceAttributeDefinition<X>
getDisplayNameAttribute()
Returns the definition of display name attribute.String
getIntent()
TODO: THIS SHOULD NOT BE HEREShadowKindType
getKind()
TODO: THIS SHOULD NOT BE HERE<X> ResourceAttributeDefinition<X>
getNamingAttribute()
TODOString
getNativeObjectClass()
Returns the native object class string for the resource object.@NotNull Collection<? extends ResourceAttributeDefinition<?>>
getPrimaryIdentifiers()
Returns the definition of primary identifier attributes of a resource object.@NotNull Collection<? extends ResourceAttributeDefinition<?>>
getSecondaryIdentifiers()
Returns the definition of secondary identifier attributes of a resource object.default boolean
hasIndexOnlyAttributes()
ResourceAttributeContainer
instantiate(QName elementName)
boolean
isAuxiliary()
TODOboolean
isDefaultInAKind()
Indicates whether definition is should be used as default definition in ist kind.default boolean
isIdentifier(QName attrName)
default boolean
isPrimaryIdentifier(QName attrName)
Returns true if the attribute with a given name is among primary identifiers.default boolean
isSecondaryIdentifier(QName attrName)
Returns true if the attribute with a given name is among secondary identifiers.boolean
matches(ShadowType shadow)
Deprecated.MutableObjectClassComplexTypeDefinition
toMutable()
default ResourceAttributeContainerDefinition
toResourceAttributeContainerDefinition()
default ResourceAttributeContainerDefinition
toResourceAttributeContainerDefinition(QName elementName)
-
Methods inherited from interface com.evolveum.midpoint.prism.ComplexTypeDefinition
containsItemDefinition, getDefaultNamespace, getDefinitions, getExtensionForType, getIgnoredNamespaces, hasSubstitutions, isContainerMarker, isEmpty, isItemDefinitionRemoved, isListMarker, isObjectMarker, isReferenceMarker, isShared, isXsdAnyMarker, itemOrSubstitution, merge, revive, substitution, trimTo
-
Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDump, debugDumpLazily, debugDumpLazily
-
Methods inherited from interface com.evolveum.midpoint.prism.Definition
debugDump, getAnnotation, getDeprecatedSince, getDiagrams, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, getMutabilityFlag, getPlannedRemoval, getProcessing, getSchemaMigrations, getSchemaRegistry, getTypeClass, getTypeClassIfKnown, 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.prism.LocalDefinitionStore
findContainerDefinition, findContainerDefinition, findItemDefinition, findItemDefinition, findLocalItemDefinition, findLocalItemDefinition, findNamedItemDefinition, findPropertyDefinition, findReferenceDefinition, findReferenceDefinition
-
Methods inherited from interface com.evolveum.midpoint.prism.PrismContextSensitive
getPrismContext
-
Methods inherited from interface com.evolveum.midpoint.prism.SmartVisitable
accept
-
Methods inherited from interface com.evolveum.midpoint.prism.TypeDefinition
canRepresent, getCompileTimeClass, getInstantiationOrder, getStaticSubTypes, getSuperType, isAssignableFrom
-
-
-
-
Method Detail
-
getAttributeDefinitions
@NotNull @NotNull Collection<? extends ResourceAttributeDefinition<?>> getAttributeDefinitions()
Returns all attribute definitions as an unmodifiable collection. Should be the same content as returned by getDefinitions().
-
findAttributeDefinition
@Nullable default <X> @Nullable ResourceAttributeDefinition<X> findAttributeDefinition(QName name)
Finds a attribute definition by looking at the property name. Returns null if nothing is found.- Parameters:
name
- property definition name- Returns:
- found property definition or null
-
findAttributeDefinition
@Nullable default <X> @Nullable ResourceAttributeDefinition<X> findAttributeDefinition(QName name, boolean caseInsensitive)
Finds a attribute definition by looking at the property name; not considering the case. Returns null if nothing is found.- Parameters:
name
- property definition name- Returns:
- found property definition or null
-
findAttributeDefinition
default <X> ResourceAttributeDefinition<X> findAttributeDefinition(String name)
-
getPrimaryIdentifiers
@NotNull @NotNull Collection<? extends ResourceAttributeDefinition<?>> getPrimaryIdentifiers()
Returns the definition of primary identifier attributes of a resource object. May return empty set if there are no identifier attributes. Must not return null. 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.- Returns:
- definition of identifier attributes
-
isPrimaryIdentifier
default boolean isPrimaryIdentifier(QName attrName)
Returns true if the attribute with a given name is among primary identifiers. Matching is done using namespace-approximate method (testing only local part if no namespace is provided), so beware of incidental matching (e.g. ri:uid vs icfs:uid).
-
isIdentifier
default boolean isIdentifier(QName attrName)
-
getSecondaryIdentifiers
@NotNull @NotNull Collection<? extends ResourceAttributeDefinition<?>> getSecondaryIdentifiers()
Returns the definition of secondary identifier attributes of a resource object. May return empty set if there are no secondary identifier attributes. Must not return null. 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.- Returns:
- definition of secondary identifier attributes
-
isSecondaryIdentifier
default boolean isSecondaryIdentifier(QName attrName)
Returns true if the attribute with a given name is among secondary identifiers. Matching is done using namespace-approximate method (testing only local part if no namespace is provided), so beware of incidental matching (e.g. ri:uid vs icfs:uid).
-
getDescriptionAttribute
<X> ResourceAttributeDefinition<X> getDescriptionAttribute()
Returns the definition of description attribute of a resource object. Returns null if there is no description attribute. 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.
-
getNamingAttribute
<X> ResourceAttributeDefinition<X> getNamingAttribute()
TODO
-
getDisplayNameAttribute
<X> ResourceAttributeDefinition<X> getDisplayNameAttribute()
Returns the definition of display name attribute. Display name attribute specifies which resource attribute should be used as title when displaying objects of a specific resource object class. It must point to an attribute of String type. If not present, primary identifier should be used instead (but this method does not handle this default behavior). Returns null if there is no display name attribute. 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.
-
getAllIdentifiers
default Collection<? extends ResourceAttributeDefinition<?>> getAllIdentifiers()
Returns both primary and secondary identifiers.
-
getNativeObjectClass
String getNativeObjectClass()
Returns the native object class string for the resource object. Native object class is the name of the Resource Object Definition (Object Class) as it is seen by the resource itself. The name of the Resource Object Definition 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 unmangled 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.- Returns:
- native object class
-
isAuxiliary
boolean isAuxiliary()
TODO- Returns:
-
getKind
ShadowKindType getKind()
TODO: THIS SHOULD NOT BE HERE- Returns:
-
isDefaultInAKind
boolean isDefaultInAKind()
Indicates whether definition is should be used as default definition in ist kind. E.g. if used in an "account" kind it indicates default account definition. If true value is returned then the definition should be used as a default definition for the kind. This is a way how a resource connector may suggest applicable object classes (resource object definitions) for individual shadow kinds (e.g. accounts).- Returns:
- true if the definition should be used as account type.
-
getIntent
String getIntent()
TODO: THIS SHOULD NOT BE HERE- Returns:
-
toResourceAttributeContainerDefinition
default ResourceAttributeContainerDefinition toResourceAttributeContainerDefinition()
-
toResourceAttributeContainerDefinition
default ResourceAttributeContainerDefinition toResourceAttributeContainerDefinition(QName elementName)
-
createShadowSearchQuery
default ObjectQuery createShadowSearchQuery(String resourceOid) throws SchemaException
- Throws:
SchemaException
-
instantiate
ResourceAttributeContainer instantiate(QName elementName)
-
clone
@NotNull @NotNull ObjectClassComplexTypeDefinition 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
-
deepClone
@NotNull @NotNull ObjectClassComplexTypeDefinition deepClone(Map<QName,ComplexTypeDefinition> ctdMap, Map<QName,ComplexTypeDefinition> onThisPath, Consumer<ItemDefinition> postCloneAction)
Description copied from interface:ComplexTypeDefinition
Does a deep clone of this definition.- Specified by:
deepClone
in interfaceComplexTypeDefinition
- Parameters:
ctdMap
- Keeps already cloned definitions when 'ultra deep cloning' is not requested. Each definition is then cloned only once.onThisPath
- Keeps already cloned definitions on the path from root to current node; in order to prevent infinite loops when doing ultra deep cloning.
-
matches
@Deprecated boolean matches(ShadowType shadow)
Deprecated.Do not use. Unclear semantics. For synchronization tasks usecom.evolveum.midpoint.model.impl.sync.SynchronizationObjectsFilter
class instead.
-
toMutable
MutableObjectClassComplexTypeDefinition toMutable()
- Specified by:
toMutable
in interfaceComplexTypeDefinition
- Specified by:
toMutable
in interfaceDefinition
-
hasIndexOnlyAttributes
default boolean hasIndexOnlyAttributes()
-
-