Class CompositeRefinedObjectClassDefinitionImpl
- java.lang.Object
-
- com.evolveum.midpoint.common.refinery.CompositeRefinedObjectClassDefinitionImpl
-
- All Implemented Interfaces:
CompositeRefinedObjectClassDefinition,RefinedObjectClassDefinition,ComplexTypeDefinition,Definition,Freezable,LocalDefinitionStore,PrismContextSensitive,Revivable,SmartVisitable<Definition>,TypeDefinition,Visitable<Definition>,ObjectClassComplexTypeDefinition,DebugDumpable,Serializable,Cloneable
public class CompositeRefinedObjectClassDefinitionImpl extends Object implements CompositeRefinedObjectClassDefinition
Used to represent combined definition of structural and auxiliary object classes.- Author:
- semancik
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
-
Constructor Summary
Constructors Constructor Description CompositeRefinedObjectClassDefinitionImpl(@NotNull RefinedObjectClassDefinition structuralObjectClassDefinition, Collection<RefinedObjectClassDefinition> auxiliaryObjectClassDefinitions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(Visitor<Definition> visitor)booleanaccept(Visitor<Definition> visitor, SmartVisitation<Definition> visitation)booleancanRepresent(QName typeName)@NotNull CompositeRefinedObjectClassDefinitionImplclone()Does a shallow clone of this definition (i.e.booleancontainsAttributeDefinition(ItemPathType pathType)booleancontainsAttributeDefinition(QName attributeName)PrismObject<ShadowType>createBlankShadow(RefinedObjectClassDefinition definition, String tag)ObjectQuerycreateShadowSearchQuery(String resourceOid)StringdebugDump(int indent)protected StringdebugDump(int indent, LayerType layer)@NotNull CompositeRefinedObjectClassDefinitionImpldeepClone(Map<QName,ComplexTypeDefinition> ctdMap, Map<QName,ComplexTypeDefinition> onThisPath, Consumer<ItemDefinition> postCloneAction)Does a deep clone of this definition.booleanequals(Object obj)RefinedAssociationDefinitionfindAssociationDefinition(QName name)<X> RefinedAttributeDefinition<X>findAttributeDefinition(@NotNull QName name)Finds a attribute definition by looking at the property name.<X> RefinedAttributeDefinition<X>findAttributeDefinition(QName elementQName, boolean caseInsensitive)Finds a attribute definition by looking at the property name; not considering the case.<ID extends ItemDefinition>
IDfindItemDefinition(@NotNull ItemPath path, @NotNull Class<ID> clazz)<T extends ItemDefinition>
TfindLocalItemDefinition(@NotNull QName name, @NotNull Class<T> clazz, boolean caseInsensitive)<ID extends ItemDefinition>
IDfindNamedItemDefinition(@NotNull QName firstName, @NotNull ItemPath rest, @NotNull Class<ID> clazz)LayerRefinedObjectClassDefinitionforLayer(@NotNull LayerType layerType)voidfreeze()ResourceBidirectionalMappingTypegetActivationBidirectionalMappingType(QName propertyName)AttributeFetchStrategyTypegetActivationFetchStrategy(QName propertyName)ResourceActivationDefinitionTypegetActivationSchemaHandling()Collection<? extends RefinedAttributeDefinition<?>>getAllIdentifiers()Returns both primary and secondary identifiers.<A> AgetAnnotation(QName qname)Returns generic definition annotation.@NotNull Collection<RefinedAssociationDefinition>getAssociationDefinitions()Returns definitions of all associations as an unmodifiable collection.Collection<RefinedAssociationDefinition>getAssociationDefinitions(ShadowKindType kind)@NotNull Collection<? extends RefinedAttributeDefinition<?>>getAttributeDefinitions()Returns definitions of all attributes as an unmodifiable collection.@NotNull Collection<RefinedObjectClassDefinition>getAuxiliaryObjectClassDefinitions()ResourceBidirectionalMappingAndDefinitionTypegetAuxiliaryObjectClassMappings()ResourceObjectReferenceTypegetBaseContext()CapabilitiesTypegetCapabilities()Returns configured capabilities for given refined object class definition.Class<?>getCompileTimeClass()Returns compile-time class, if this type has any.StringgetDebugDumpClassName()Return a human readable name of this class suitable for logs.StringgetDefaultNamespace()When resolving unqualified names for items contained in this CTD, what should be the default namespace to look into at first.@NotNull List<? extends ItemDefinition>getDefinitions()Returns definitions for all inner items.StringgetDeprecatedSince()StringgetDescription()<X> RefinedAttributeDefinition<X>getDescriptionAttribute()Returns the definition of description attribute of a resource object.List<ItemDiagramSpecification>getDiagrams()StringgetDisplayName()Returns display name.<X> RefinedAttributeDefinition<X>getDisplayNameAttribute()Returns the definition of display name attribute.IntegergetDisplayOrder()Specifies an order in which the item should be displayed relative to other items at the same level.StringgetDocumentation()StringgetDocumentationPreview()Returns only a first sentence of documentation.<T extends CapabilityType>
TgetEffectiveCapability(Class<T> capabilityClass, ResourceType resourceType)Collection<RefinedAssociationDefinition>getEntitlementAssociationDefinitions()QNamegetExtensionForType()If not null, indicates that this type defines the structure of 'extension' element of a given type.StringgetHelp()Returns help string.StringgetHumanReadableName()@NotNull List<String>getIgnoredNamespaces()When resolving unqualified names for items contained in this CTD, what namespace(s) should be ignored.IntegergetInstantiationOrder()StringgetIntent()TODO: THIS SHOULD NOT BE HEREShadowKindTypegetKind()TODO: THIS SHOULD NOT BE HEREResourceObjectMultiplicityTypegetMultiplicity()Collection<QName>getNamesOfAssociations()Collection<? extends QName>getNamesOfAssociationsWithInboundExpressions()Collection<? extends QName>getNamesOfAssociationsWithOutboundExpressions()Collection<? extends QName>getNamesOfAttributesWithInboundExpressions()Collection<? extends QName>getNamesOfAttributesWithOutboundExpressions()<X> RefinedAttributeDefinition<X>getNamingAttribute()TODOStringgetNativeObjectClass()Returns the native object class string for the resource object.ObjectClassComplexTypeDefinitiongetObjectClassDefinition()PrismObjectDefinition<ShadowType>getObjectDefinition()PagedSearchCapabilityTypegetPagedSearches(ResourceType resourceType)ResourcePasswordDefinitionTypegetPasswordDefinition()AttributeFetchStrategyTypegetPasswordFetchStrategy()List<MappingType>getPasswordInbound()List<MappingType>getPasswordOutbound()StringgetPlannedRemoval()Version of data model in which the item is likely to be removed.@NotNull Collection<? extends RefinedAttributeDefinition<?>>getPrimaryIdentifiers()Returns the definition of primary identifier attributes of a resource object.PrismContextgetPrismContext()ItemProcessinggetProcessing()ProjectionPolicyTypegetProjection()Collection<ResourceObjectPattern>getProtectedObjectPatterns()StringgetResourceOid()List<SchemaMigration>getSchemaMigrations()SearchHierarchyScopegetSearchHierarchyScope()@NotNull Collection<? extends RefinedAttributeDefinition<?>>getSecondaryIdentifiers()Returns the definition of secondary identifier attributes of a resource object.ObjectReferenceTypegetSecurityPolicyRef()ResourceShadowDiscriminatorgetShadowDiscriminator()@NotNull Collection<TypeDefinition>getStaticSubTypes()Subtypes - but only these that are a part of the static schema.RefinedObjectClassDefinitiongetStructuralObjectClassDefinition()QNamegetSuperType()Name of super type of this complex type definition.ClassgetTypeClass()Returns a compile-time class that is used to represent items.ClassgetTypeClassIfKnown()@NotNull QNamegetTypeName()Returns a name of the type for this definition.ResourceObjectVolatilityTypegetVolatility()booleanhasAuxiliaryObjectClass(QName expectedObjectClassName)inthashCode()booleanhasSubstitutions()ResourceAttributeContainerinstantiate(QName elementName)booleanisAbstract()booleanisAuxiliary()TODObooleanisContainerMarker()Flag indicating whether this type was marked as "container" in the original schema.booleanisDefault()booleanisDefaultInAKind()Indicates whether definition is should be used as default definition in ist kind.booleanisDeprecated()booleanisElaborate()Elaborate items are complicated data structure that may deviate from normal principles of the system.booleanisEmphasized()True for definitions that are more important than others and that should be emphasized during presentation.booleanisEmpty()Returns true if there are no item definitions.booleanisExperimental()Experimental functionality is not stable and it may be changed in any future release without any warning.booleanisIgnored()Item definition that has this flag set should be ignored by any processing.booleanisImmutable()booleanisListMarker()booleanisObjectCountingEnabled(ResourceType resourceType)booleanisObjectMarker()Flag indicating whether this type was marked as "object" in the original schema.booleanisPagedSearchEnabled(ResourceType resourceType)booleanisPrimaryIdentifier(QName attrName)Returns true if the attribute with a given name is among primary identifiers.booleanisReferenceMarker()Flag indicating whether this type was marked as "objectReference" in the original schema.booleanisRuntimeSchema()This means that this particular definition (of an item or of a type) is part of the runtime schema, e.g.booleanisSecondaryIdentifier(QName attrName)Returns true if the attribute with a given name is among secondary identifiers.booleanisShared()Is this definition shared, i.e.booleanisXsdAnyMarker()True if the complex type definition contains xsd:any (directly or indirectly).booleanmatches(ShadowType shadow)Do not use.voidmerge(ComplexTypeDefinition otherComplexTypeDef)Copies cloned definitions from the other type definition into this one.voidrevive(PrismContext prismContext)<A> voidsetAnnotation(QName qname, A value)Optional<ItemDefinition<?>>substitution(QName name)MutableObjectClassComplexTypeDefinitiontoMutable()StringtoString()voidtrimTo(@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 java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.evolveum.midpoint.prism.ComplexTypeDefinition
containsItemDefinition, isItemDefinitionRemoved, itemOrSubstitution
-
Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDumpLazily, debugDumpLazily
-
Methods inherited from interface com.evolveum.midpoint.prism.Definition
debugDump, getMutabilityFlag, getSchemaRegistry
-
Methods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable
-
Methods inherited from interface com.evolveum.midpoint.prism.LocalDefinitionStore
findContainerDefinition, findContainerDefinition, findItemDefinition, findLocalItemDefinition, findPropertyDefinition, findReferenceDefinition, findReferenceDefinition
-
Methods inherited from interface com.evolveum.midpoint.schema.processor.ObjectClassComplexTypeDefinition
hasIndexOnlyAttributes, isIdentifier, toResourceAttributeContainerDefinition, toResourceAttributeContainerDefinition
-
Methods inherited from interface com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition
createBlankShadow, findAttributeDefinition
-
Methods inherited from interface com.evolveum.midpoint.prism.TypeDefinition
isAssignableFrom
-
-
-
-
Constructor Detail
-
CompositeRefinedObjectClassDefinitionImpl
public CompositeRefinedObjectClassDefinitionImpl(@NotNull @NotNull RefinedObjectClassDefinition structuralObjectClassDefinition, Collection<RefinedObjectClassDefinition> auxiliaryObjectClassDefinitions)
-
-
Method Detail
-
getStructuralObjectClassDefinition
public RefinedObjectClassDefinition getStructuralObjectClassDefinition()
- Specified by:
getStructuralObjectClassDefinitionin interfaceCompositeRefinedObjectClassDefinition
-
getAuxiliaryObjectClassDefinitions
@NotNull public @NotNull Collection<RefinedObjectClassDefinition> getAuxiliaryObjectClassDefinitions()
- Specified by:
getAuxiliaryObjectClassDefinitionsin interfaceCompositeRefinedObjectClassDefinition- Specified by:
getAuxiliaryObjectClassDefinitionsin interfaceRefinedObjectClassDefinition
-
getObjectDefinition
public PrismObjectDefinition<ShadowType> getObjectDefinition()
- Specified by:
getObjectDefinitionin interfaceRefinedObjectClassDefinition
-
getCompileTimeClass
public Class<?> getCompileTimeClass()
Description copied from interface:TypeDefinitionReturns compile-time class, if this type has any. For example, UserType.class, ObjectType.class, ExtensionType.class.- Specified by:
getCompileTimeClassin interfaceTypeDefinition
-
isContainerMarker
public boolean isContainerMarker()
Description copied from interface:ComplexTypeDefinitionFlag indicating whether this type was marked as "container" in the original schema. Does not provide any information to schema processing logic, just conveys the marker from original schema so we can serialize and deserialize the schema without loss of information.- Specified by:
isContainerMarkerin interfaceComplexTypeDefinition
-
isPrimaryIdentifier
public boolean isPrimaryIdentifier(QName attrName)
Description copied from interface:ObjectClassComplexTypeDefinitionReturns 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).- Specified by:
isPrimaryIdentifierin interfaceObjectClassComplexTypeDefinition
-
isObjectMarker
public boolean isObjectMarker()
Description copied from interface:ComplexTypeDefinitionFlag indicating whether this type was marked as "object" in the original schema. Does not provide any information to schema processing logic, just conveys the marker from original schema so we can serialized and deserialize the schema without loss of information.- Specified by:
isObjectMarkerin interfaceComplexTypeDefinition
-
isIgnored
public boolean isIgnored()
Description copied from interface:DefinitionItem definition that has this flag set should be ignored by any processing. The ignored item is still part of the schema. Item instances may appear in the serialized data formats (e.g. XML) or data store and the parser should not raise an error if it encounters them. But any high-level processing code should ignore presence of this item. E.g. it should not be displayed to the user, should not be present in transformed data structures, etc. Note that the same item can be ignored at higher layer (e.g. presentation) but not ignored at lower layer (e.g. model). This works by presenting different item definitions for these layers (see LayerRefinedAttributeDefinition). Semantics of this flag for complex type definitions is to be defined yet.- Specified by:
isIgnoredin interfaceDefinition
-
getProcessing
public ItemProcessing getProcessing()
- Specified by:
getProcessingin interfaceDefinition
-
getSchemaMigrations
public List<SchemaMigration> getSchemaMigrations()
- Specified by:
getSchemaMigrationsin interfaceDefinition
-
getDiagrams
public List<ItemDiagramSpecification> getDiagrams()
- Specified by:
getDiagramsin interfaceDefinition
-
isEmphasized
public boolean isEmphasized()
Description copied from interface:DefinitionTrue for definitions that are more important than others and that should be emphasized during presentation. E.g. the emphasized definitions will always be displayed in the user interfaces (even if they are empty), they will always be included in the dumps, etc.- Specified by:
isEmphasizedin interfaceDefinition
-
isAbstract
public boolean isAbstract()
- Specified by:
isAbstractin interfaceDefinition
-
getSuperType
public QName getSuperType()
Description copied from interface:TypeDefinitionName of super type of this complex type definition. E.g. c:ObjectType is a super type for c:FocusType which is a super type for c:UserType. Or (more complex example) ri:ShadowAttributesType is a super type of ri:AccountObjectClass. (TODO is this really true?)- Specified by:
getSuperTypein interfaceTypeDefinition
-
isSecondaryIdentifier
public boolean isSecondaryIdentifier(QName attrName)
Description copied from interface:ObjectClassComplexTypeDefinitionReturns 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).- Specified by:
isSecondaryIdentifierin interfaceObjectClassComplexTypeDefinition
-
isDeprecated
public boolean isDeprecated()
- Specified by:
isDeprecatedin interfaceDefinition
-
getDeprecatedSince
public String getDeprecatedSince()
- Specified by:
getDeprecatedSincein interfaceDefinition
-
isExperimental
public boolean isExperimental()
Description copied from interface:DefinitionExperimental functionality is not stable and it may be changed in any future release without any warning. Use at your own risk.- Specified by:
isExperimentalin interfaceDefinition
-
getPlannedRemoval
public String getPlannedRemoval()
Description copied from interface:DefinitionVersion of data model in which the item is likely to be removed. This annotation is used for deprecated item to indicate imminent incompatibility in future versions of data model.- Specified by:
getPlannedRemovalin interfaceDefinition
-
isElaborate
public boolean isElaborate()
Description copied from interface:DefinitionElaborate items are complicated data structure that may deviate from normal principles of the system. For example elaborate items may not be supported in user interface and may only be manageable by raw edits or a special-purpose tools. Elaborate items may be not fully supported by authorizations, schema tools and so on.- Specified by:
isElaboratein interfaceDefinition
-
getDisplayOrder
public Integer getDisplayOrder()
Description copied from interface:DefinitionSpecifies an order in which the item should be displayed relative to other items at the same level. The items will be displayed by sorting them by the values of displayOrder annotation (ascending). Items that do not have any displayOrder annotation will be displayed last. The ordering of values with the same displayOrder is undefined and it may be arbitrary.- Specified by:
getDisplayOrderin interfaceDefinition
-
getDescriptionAttribute
public <X> RefinedAttributeDefinition<X> getDescriptionAttribute()
Description copied from interface:ObjectClassComplexTypeDefinitionReturns 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.- Specified by:
getDescriptionAttributein interfaceObjectClassComplexTypeDefinition- Specified by:
getDescriptionAttributein interfaceRefinedObjectClassDefinition
-
getNamingAttribute
public <X> RefinedAttributeDefinition<X> getNamingAttribute()
Description copied from interface:ObjectClassComplexTypeDefinitionTODO- Specified by:
getNamingAttributein interfaceObjectClassComplexTypeDefinition- Specified by:
getNamingAttributein interfaceRefinedObjectClassDefinition
-
getHelp
public String getHelp()
Description copied from interface:DefinitionReturns help string. Specifies the help text or a key to catalog file for a help text. The help text may be displayed in any suitable way by the GUI. It should explain the meaning of an attribute or object class. Returns null if no help string is set. Corresponds to "help" XSD annotation.- Specified by:
getHelpin interfaceDefinition- Returns:
- help string or catalog key
-
getTypeName
@NotNull public @NotNull QName getTypeName()
Description copied from interface:DefinitionReturns a name of the type for this definition. The type can be part of the compile-time schema or it can be defined at run time. Examples of the former case are types like c:UserType, xsd:string, or even flexible ones like c:ExtensionType or c:ShadowAttributesType. Examples of the latter case are types used in - custom extensions, like ext:LocationsType (where ext = e.g. http://example.com/extension), - resource schema, like ri:inetOrgPerson (ri = http://.../resource/instance-3), - connector schema, like TODO In XML representation that corresponds to the name of the XSD type. Although beware, the run-time types do not have statically defined structure. And the resource and connector-related types may even represent different kinds of objects within different contexts (e.g. two distinct resources both with ri:AccountObjectClass types). Also note that for complex type definitions, the type name serves as a unique identifier. On the other hand, for item definitions, it is just one of its attributes; primary key is item name in that case. The type name should be fully qualified. (TODO reconsider this)- Specified by:
getTypeNamein interfaceDefinition- Returns:
- the type name
-
getNativeObjectClass
public String getNativeObjectClass()
Description copied from interface:ObjectClassComplexTypeDefinitionReturns 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.- Specified by:
getNativeObjectClassin interfaceObjectClassComplexTypeDefinition- Returns:
- native object class
-
getDocumentation
public String getDocumentation()
- Specified by:
getDocumentationin interfaceDefinition
-
isDefaultInAKind
public boolean isDefaultInAKind()
Description copied from interface:ObjectClassComplexTypeDefinitionIndicates 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).- Specified by:
isDefaultInAKindin interfaceObjectClassComplexTypeDefinition- Returns:
- true if the definition should be used as account type.
-
getDocumentationPreview
public String getDocumentationPreview()
Description copied from interface:DefinitionReturns only a first sentence of documentation.- Specified by:
getDocumentationPreviewin interfaceDefinition
-
getIntent
public String getIntent()
Description copied from interface:ObjectClassComplexTypeDefinitionTODO: THIS SHOULD NOT BE HERE- Specified by:
getIntentin interfaceObjectClassComplexTypeDefinition- Returns:
-
getKind
public ShadowKindType getKind()
Description copied from interface:ObjectClassComplexTypeDefinitionTODO: THIS SHOULD NOT BE HERE- Specified by:
getKindin interfaceObjectClassComplexTypeDefinition- Returns:
-
isRuntimeSchema
public boolean isRuntimeSchema()
Description copied from interface:DefinitionThis means that this particular definition (of an item or of a type) is part of the runtime schema, e.g. extension schema, resource schema or connector schema or something like that. I.e. it is not defined statically.- Specified by:
isRuntimeSchemain interfaceDefinition
-
getDisplayNameAttribute
public <X> RefinedAttributeDefinition<X> getDisplayNameAttribute()
Description copied from interface:ObjectClassComplexTypeDefinitionReturns 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.- Specified by:
getDisplayNameAttributein interfaceObjectClassComplexTypeDefinition- Specified by:
getDisplayNameAttributein interfaceRefinedObjectClassDefinition
-
getPrimaryIdentifiers
@NotNull public @NotNull Collection<? extends RefinedAttributeDefinition<?>> getPrimaryIdentifiers()
Description copied from interface:ObjectClassComplexTypeDefinitionReturns 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.- Specified by:
getPrimaryIdentifiersin interfaceObjectClassComplexTypeDefinition- Specified by:
getPrimaryIdentifiersin interfaceRefinedObjectClassDefinition- Returns:
- definition of identifier attributes
-
getSecondaryIdentifiers
@NotNull public @NotNull Collection<? extends RefinedAttributeDefinition<?>> getSecondaryIdentifiers()
Description copied from interface:ObjectClassComplexTypeDefinitionReturns 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.- Specified by:
getSecondaryIdentifiersin interfaceObjectClassComplexTypeDefinition- Specified by:
getSecondaryIdentifiersin interfaceRefinedObjectClassDefinition- Returns:
- definition of secondary identifier attributes
-
getAllIdentifiers
public Collection<? extends RefinedAttributeDefinition<?>> getAllIdentifiers()
Description copied from interface:ObjectClassComplexTypeDefinitionReturns both primary and secondary identifiers.- Specified by:
getAllIdentifiersin interfaceObjectClassComplexTypeDefinition- Specified by:
getAllIdentifiersin interfaceRefinedObjectClassDefinition
-
isAuxiliary
public boolean isAuxiliary()
Description copied from interface:ObjectClassComplexTypeDefinitionTODO- Specified by:
isAuxiliaryin interfaceObjectClassComplexTypeDefinition- Returns:
-
getAssociationDefinitions
@NotNull public @NotNull Collection<RefinedAssociationDefinition> getAssociationDefinitions()
Description copied from interface:RefinedObjectClassDefinitionReturns definitions of all associations as an unmodifiable collection. Note: these items are _not_ included in getDefinitions. (BTW, RefinedAssociationDefinition is not a subtype of ItemDefinition, not even of Definition.)- Specified by:
getAssociationDefinitionsin interfaceRefinedObjectClassDefinition
-
getAssociationDefinitions
public Collection<RefinedAssociationDefinition> getAssociationDefinitions(ShadowKindType kind)
- Specified by:
getAssociationDefinitionsin interfaceRefinedObjectClassDefinition
-
getNamesOfAssociations
public Collection<QName> getNamesOfAssociations()
- Specified by:
getNamesOfAssociationsin interfaceRefinedObjectClassDefinition
-
isEmpty
public boolean isEmpty()
Description copied from interface:ComplexTypeDefinitionReturns true if there are no item definitions.- Specified by:
isEmptyin interfaceComplexTypeDefinition
-
getProtectedObjectPatterns
public Collection<ResourceObjectPattern> getProtectedObjectPatterns()
- Specified by:
getProtectedObjectPatternsin interfaceRefinedObjectClassDefinition
-
getDisplayName
public String getDisplayName()
Description copied from interface:DefinitionReturns display name. Specifies the printable name of the object class or attribute. It must contain a printable string. It may also contain a key to catalog file. Returns null if no display name is set. Corresponds to "displayName" XSD annotation.- Specified by:
getDisplayNamein interfaceDefinition- Returns:
- display name string or catalog key
-
getDescription
public String getDescription()
- Specified by:
getDescriptionin interfaceRefinedObjectClassDefinition
-
isDefault
public boolean isDefault()
- Specified by:
isDefaultin interfaceRefinedObjectClassDefinition
-
getResourceOid
public String getResourceOid()
- Specified by:
getResourceOidin interfaceRefinedObjectClassDefinition
-
getObjectClassDefinition
public ObjectClassComplexTypeDefinition getObjectClassDefinition()
- Specified by:
getObjectClassDefinitionin interfaceRefinedObjectClassDefinition
-
getBaseContext
public ResourceObjectReferenceType getBaseContext()
- Specified by:
getBaseContextin interfaceRefinedObjectClassDefinition
-
getSearchHierarchyScope
public SearchHierarchyScope getSearchHierarchyScope()
- Specified by:
getSearchHierarchyScopein interfaceRefinedObjectClassDefinition
-
getVolatility
public ResourceObjectVolatilityType getVolatility()
- Specified by:
getVolatilityin interfaceRefinedObjectClassDefinition
-
getMultiplicity
public ResourceObjectMultiplicityType getMultiplicity()
- Specified by:
getMultiplicityin interfaceRefinedObjectClassDefinition
-
getProjection
public ProjectionPolicyType getProjection()
- Specified by:
getProjectionin interfaceRefinedObjectClassDefinition
-
getPasswordInbound
public List<MappingType> getPasswordInbound()
- Specified by:
getPasswordInboundin interfaceRefinedObjectClassDefinition
-
getPasswordOutbound
public List<MappingType> getPasswordOutbound()
- Specified by:
getPasswordOutboundin interfaceRefinedObjectClassDefinition
-
getPasswordFetchStrategy
public AttributeFetchStrategyType getPasswordFetchStrategy()
- Specified by:
getPasswordFetchStrategyin interfaceRefinedObjectClassDefinition
-
getSecurityPolicyRef
public ObjectReferenceType getSecurityPolicyRef()
- Specified by:
getSecurityPolicyRefin interfaceRefinedObjectClassDefinition
-
getActivationSchemaHandling
public ResourceActivationDefinitionType getActivationSchemaHandling()
- Specified by:
getActivationSchemaHandlingin interfaceRefinedObjectClassDefinition
-
getActivationBidirectionalMappingType
public ResourceBidirectionalMappingType getActivationBidirectionalMappingType(QName propertyName)
- Specified by:
getActivationBidirectionalMappingTypein interfaceRefinedObjectClassDefinition
-
getActivationFetchStrategy
public AttributeFetchStrategyType getActivationFetchStrategy(QName propertyName)
- Specified by:
getActivationFetchStrategyin interfaceRefinedObjectClassDefinition
-
matches
public boolean matches(ShadowType shadow)
Description copied from interface:ObjectClassComplexTypeDefinitionDo not use. Unclear semantics. For synchronization tasks usecom.evolveum.midpoint.model.impl.sync.SynchronizationObjectsFilterclass instead.- Specified by:
matchesin interfaceObjectClassComplexTypeDefinition- Specified by:
matchesin interfaceRefinedObjectClassDefinition
-
getCapabilities
public CapabilitiesType getCapabilities()
Description copied from interface:RefinedObjectClassDefinitionReturns configured capabilities for given refined object class definition. Returned object is freely modifiable copy of the original information.- Specified by:
getCapabilitiesin interfaceRefinedObjectClassDefinition
-
getEffectiveCapability
public <T extends CapabilityType> T getEffectiveCapability(Class<T> capabilityClass, ResourceType resourceType)
- Specified by:
getEffectiveCapabilityin interfaceRefinedObjectClassDefinition
-
getPagedSearches
public PagedSearchCapabilityType getPagedSearches(ResourceType resourceType)
- Specified by:
getPagedSearchesin interfaceRefinedObjectClassDefinition
-
isPagedSearchEnabled
public boolean isPagedSearchEnabled(ResourceType resourceType)
- Specified by:
isPagedSearchEnabledin interfaceRefinedObjectClassDefinition
-
isObjectCountingEnabled
public boolean isObjectCountingEnabled(ResourceType resourceType)
- Specified by:
isObjectCountingEnabledin interfaceRefinedObjectClassDefinition
-
findLocalItemDefinition
public <T extends ItemDefinition> T findLocalItemDefinition(@NotNull @NotNull QName name, @NotNull @NotNull Class<T> clazz, boolean caseInsensitive)
- Specified by:
findLocalItemDefinitionin interfaceLocalDefinitionStore
-
findNamedItemDefinition
public <ID extends ItemDefinition> ID findNamedItemDefinition(@NotNull @NotNull QName firstName, @NotNull @NotNull ItemPath rest, @NotNull @NotNull Class<ID> clazz)
- Specified by:
findNamedItemDefinitionin interfaceLocalDefinitionStore
-
getAttributeDefinitions
@NotNull public @NotNull Collection<? extends RefinedAttributeDefinition<?>> getAttributeDefinitions()
Description copied from interface:RefinedObjectClassDefinitionReturns definitions of all attributes as an unmodifiable collection. Note: content of this is exactly the same as for getDefinitions- Specified by:
getAttributeDefinitionsin interfaceObjectClassComplexTypeDefinition- Specified by:
getAttributeDefinitionsin interfaceRefinedObjectClassDefinition
-
getPrismContext
public PrismContext getPrismContext()
- Specified by:
getPrismContextin interfacePrismContextSensitive
-
revive
public void revive(PrismContext prismContext)
- Specified by:
revivein interfaceComplexTypeDefinition- Specified by:
revivein interfaceRevivable
-
getDefinitions
@NotNull public @NotNull List<? extends ItemDefinition> getDefinitions()
Description copied from interface:ComplexTypeDefinitionReturns definitions for all inner items. These are of type ItemDefinition. However, very often subtypes of this type are used, e.g. ResourceAttributeDefinition, RefinedAttributeDefinition, LayerRefinedAttributeDefinition, and so on. Although returned as a list, the order of definitions is insignificant. (TODO change to set?) The list is unmodifiable.- Specified by:
getDefinitionsin interfaceComplexTypeDefinition
-
getExtensionForType
public QName getExtensionForType()
Description copied from interface:ComplexTypeDefinitionIf not null, indicates that this type defines the structure of 'extension' element of a given type. E.g. getExtensionForType() == c:UserType means that this complex type defines structure of 'extension' elements of UserType objects.- Specified by:
getExtensionForTypein interfaceComplexTypeDefinition
-
isXsdAnyMarker
public boolean isXsdAnyMarker()
Description copied from interface:ComplexTypeDefinitionTrue if the complex type definition contains xsd:any (directly or indirectly).- Specified by:
isXsdAnyMarkerin interfaceComplexTypeDefinition
-
getDefaultNamespace
public String getDefaultNamespace()
Description copied from interface:ComplexTypeDefinitionWhen resolving unqualified names for items contained in this CTD, what should be the default namespace to look into at first. Currently does NOT apply recursively (to inner CTDs).- Specified by:
getDefaultNamespacein interfaceComplexTypeDefinition
-
getIgnoredNamespaces
@NotNull public @NotNull List<String> getIgnoredNamespaces()
Description copied from interface:ComplexTypeDefinitionWhen resolving unqualified names for items contained in this CTD, what namespace(s) should be ignored. Names in this list are interpreted as a namespace prefixes. Currently does NOT apply recursively (to inner CTDs).- Specified by:
getIgnoredNamespacesin interfaceComplexTypeDefinition
-
forLayer
public LayerRefinedObjectClassDefinition forLayer(@NotNull @NotNull LayerType layerType)
- Specified by:
forLayerin interfaceRefinedObjectClassDefinition
-
findAttributeDefinition
public <X> RefinedAttributeDefinition<X> findAttributeDefinition(QName elementQName, boolean caseInsensitive)
Description copied from interface:ObjectClassComplexTypeDefinitionFinds a attribute definition by looking at the property name; not considering the case. Returns null if nothing is found.- Specified by:
findAttributeDefinitionin interfaceObjectClassComplexTypeDefinition- Parameters:
elementQName- property definition name- Returns:
- found property definition or null
-
findAttributeDefinition
public <X> RefinedAttributeDefinition<X> findAttributeDefinition(@NotNull @NotNull QName name)
Description copied from interface:ObjectClassComplexTypeDefinitionFinds a attribute definition by looking at the property name. Returns null if nothing is found.- Specified by:
findAttributeDefinitionin interfaceObjectClassComplexTypeDefinition- Specified by:
findAttributeDefinitionin interfaceRefinedObjectClassDefinition- Parameters:
name- property definition name- Returns:
- found property definition or null
-
findAssociationDefinition
public RefinedAssociationDefinition findAssociationDefinition(QName name)
- Specified by:
findAssociationDefinitionin interfaceRefinedObjectClassDefinition
-
getEntitlementAssociationDefinitions
public Collection<RefinedAssociationDefinition> getEntitlementAssociationDefinitions()
-
getNamesOfAssociationsWithOutboundExpressions
public Collection<? extends QName> getNamesOfAssociationsWithOutboundExpressions()
- Specified by:
getNamesOfAssociationsWithOutboundExpressionsin interfaceRefinedObjectClassDefinition
-
getNamesOfAssociationsWithInboundExpressions
public Collection<? extends QName> getNamesOfAssociationsWithInboundExpressions()
- Specified by:
getNamesOfAssociationsWithInboundExpressionsin interfaceRefinedObjectClassDefinition
-
getAuxiliaryObjectClassMappings
public ResourceBidirectionalMappingAndDefinitionType getAuxiliaryObjectClassMappings()
- Specified by:
getAuxiliaryObjectClassMappingsin interfaceRefinedObjectClassDefinition
-
hasAuxiliaryObjectClass
public boolean hasAuxiliaryObjectClass(QName expectedObjectClassName)
- Specified by:
hasAuxiliaryObjectClassin interfaceRefinedObjectClassDefinition
-
instantiate
public ResourceAttributeContainer instantiate(QName elementName)
- Specified by:
instantiatein interfaceObjectClassComplexTypeDefinition
-
findItemDefinition
public <ID extends ItemDefinition> ID findItemDefinition(@NotNull @NotNull ItemPath path, @NotNull @NotNull Class<ID> clazz)
- Specified by:
findItemDefinitionin interfaceLocalDefinitionStore
-
merge
public void merge(ComplexTypeDefinition otherComplexTypeDef)
Description copied from interface:ComplexTypeDefinitionCopies cloned definitions from the other type definition into this one. (TODO remove from the interface?)- Specified by:
mergein interfaceComplexTypeDefinition
-
getTypeClassIfKnown
public Class getTypeClassIfKnown()
- Specified by:
getTypeClassIfKnownin interfaceDefinition
-
getTypeClass
public Class getTypeClass()
Description copied from interface:DefinitionReturns a compile-time class that is used to represent items. E.g. returns String, Integer, sublcasses of Objectable and Containerable and so on.- Specified by:
getTypeClassin interfaceDefinition
-
containsAttributeDefinition
public boolean containsAttributeDefinition(ItemPathType pathType)
- Specified by:
containsAttributeDefinitionin interfaceRefinedObjectClassDefinition
-
containsAttributeDefinition
public boolean containsAttributeDefinition(QName attributeName)
- Specified by:
containsAttributeDefinitionin interfaceRefinedObjectClassDefinition
-
createShadowSearchQuery
public ObjectQuery createShadowSearchQuery(String resourceOid) throws SchemaException
- Specified by:
createShadowSearchQueryin interfaceObjectClassComplexTypeDefinition- Throws:
SchemaException
-
createBlankShadow
public PrismObject<ShadowType> createBlankShadow(RefinedObjectClassDefinition definition, String tag)
- Specified by:
createBlankShadowin interfaceRefinedObjectClassDefinition
-
getShadowDiscriminator
public ResourceShadowDiscriminator getShadowDiscriminator()
- Specified by:
getShadowDiscriminatorin interfaceRefinedObjectClassDefinition
-
getNamesOfAttributesWithOutboundExpressions
public Collection<? extends QName> getNamesOfAttributesWithOutboundExpressions()
- Specified by:
getNamesOfAttributesWithOutboundExpressionsin interfaceRefinedObjectClassDefinition
-
getNamesOfAttributesWithInboundExpressions
public Collection<? extends QName> getNamesOfAttributesWithInboundExpressions()
- Specified by:
getNamesOfAttributesWithInboundExpressionsin interfaceRefinedObjectClassDefinition
-
getPasswordDefinition
public ResourcePasswordDefinitionType getPasswordDefinition()
- Specified by:
getPasswordDefinitionin interfaceRefinedObjectClassDefinition
-
accept
public void accept(Visitor<Definition> visitor)
- Specified by:
acceptin interfaceVisitable<Definition>
-
accept
public boolean accept(Visitor<Definition> visitor, SmartVisitation<Definition> visitation)
- Specified by:
acceptin interfaceSmartVisitable<Definition>- Returns:
- false if we already was here
-
clone
@NotNull public @NotNull CompositeRefinedObjectClassDefinitionImpl clone()
Description copied from interface:ComplexTypeDefinitionDoes a shallow clone of this definition (i.e. item definitions themselves are NOT cloned).- Specified by:
clonein interfaceComplexTypeDefinition- Specified by:
clonein interfaceDefinition- Specified by:
clonein interfaceObjectClassComplexTypeDefinition- Specified by:
clonein interfaceRefinedObjectClassDefinition- Overrides:
clonein classObject
-
debugDump
public String debugDump(int indent)
- Specified by:
debugDumpin interfaceDebugDumpable
-
getDebugDumpClassName
public String getDebugDumpClassName()
Return a human readable name of this class suitable for logs.- Specified by:
getDebugDumpClassNamein interfaceRefinedObjectClassDefinition
-
getHumanReadableName
public String getHumanReadableName()
- Specified by:
getHumanReadableNamein interfaceRefinedObjectClassDefinition
-
deepClone
@NotNull public @NotNull CompositeRefinedObjectClassDefinitionImpl deepClone(Map<QName,ComplexTypeDefinition> ctdMap, Map<QName,ComplexTypeDefinition> onThisPath, Consumer<ItemDefinition> postCloneAction)
Description copied from interface:ComplexTypeDefinitionDoes a deep clone of this definition.- Specified by:
deepClonein interfaceComplexTypeDefinition- Specified by:
deepClonein interfaceObjectClassComplexTypeDefinition- Specified by:
deepClonein interfaceRefinedObjectClassDefinition- 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.
-
isListMarker
public boolean isListMarker()
- Specified by:
isListMarkerin interfaceComplexTypeDefinition
-
trimTo
public void trimTo(@NotNull @NotNull Collection<ItemPath> paths)Description copied from interface:ComplexTypeDefinitionTrims 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:
trimToin interfaceComplexTypeDefinition
-
toMutable
public MutableObjectClassComplexTypeDefinition toMutable()
- Specified by:
toMutablein interfaceComplexTypeDefinition- Specified by:
toMutablein interfaceDefinition- Specified by:
toMutablein interfaceObjectClassComplexTypeDefinition
-
isShared
public boolean isShared()
Description copied from interface:ComplexTypeDefinitionIs this definition shared, i.e. used by more than one prism object? If so, it should not be e.g. trimmed. EXPERIMENTAL- Specified by:
isSharedin interfaceComplexTypeDefinition
-
isReferenceMarker
public boolean isReferenceMarker()
Description copied from interface:ComplexTypeDefinitionFlag indicating whether this type was marked as "objectReference" in the original schema.- Specified by:
isReferenceMarkerin interfaceComplexTypeDefinition
-
getStaticSubTypes
@NotNull public @NotNull Collection<TypeDefinition> getStaticSubTypes()
Description copied from interface:TypeDefinitionSubtypes - but only these that are a part of the static schema. A little bit experimental. :)- Specified by:
getStaticSubTypesin interfaceTypeDefinition
-
getAnnotation
public <A> A getAnnotation(QName qname)
Description copied from interface:DefinitionReturns generic definition annotation. Annotations are a method to extend schema definitions. This may be annotation stored in the schema definition file (e.g. XSD) or it may be a dynamic annotation determined at run-time. Annotation value should be a prism-supported object. E.g. a prims "bean" (JAXB annotated class), prism item, prism value or something like that. EXPERIMENTAL. Hic sunt leones. This may change at any moment. Note: annotations are only partially supported now (3.8). They are somehow transient. E.g. they are not serialized to XSD schema definitions (yet).- Specified by:
getAnnotationin interfaceDefinition
-
setAnnotation
public <A> void setAnnotation(QName qname, A value)
- Specified by:
setAnnotationin interfaceDefinition
-
getInstantiationOrder
public Integer getInstantiationOrder()
- Specified by:
getInstantiationOrderin interfaceTypeDefinition
-
canRepresent
public boolean canRepresent(QName typeName)
- Specified by:
canRepresentin interfaceTypeDefinition
-
isImmutable
public boolean isImmutable()
- Specified by:
isImmutablein interfaceFreezable
-
hasSubstitutions
public boolean hasSubstitutions()
- Specified by:
hasSubstitutionsin interfaceComplexTypeDefinition
-
substitution
public Optional<ItemDefinition<?>> substitution(QName name)
- Specified by:
substitutionin interfaceComplexTypeDefinition
-
-