Interface ComplexTypeDefinitionDelegator
- All Superinterfaces:
AbstractTypeDefinition
,Cloneable
,ComplexTypeDefinition
,DebugDumpable
,Definition
,DefinitionDelegator
,Freezable
,LocalItemDefinitionStore
,PrismLifecycleDefinition
,PrismPresentationDefinition
,Revivable
,Serializable
,SmartVisitable<Definition>
,TypeDefinition
,TypeDefinitionDelegator
,Visitable<Definition>
public interface ComplexTypeDefinitionDelegator
extends TypeDefinitionDelegator, ComplexTypeDefinition
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.ComplexTypeDefinition
ComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder, ComplexTypeDefinition.ComplexTypeDefinitionMutator, ComplexTypeDefinition.ValueMigrator
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.prism.TypeDefinition
TypeDefinition.TypeDefinitionLikeBuilder, TypeDefinition.TypeDefinitionMutator
-
Field Summary
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
Method Summary
Modifier and TypeMethodDescriptiondelegate()
default <C extends Containerable>
PrismContainerDefinition<C>findContainerDefinition
(@NotNull ItemPath path) ReturnsPrismContainerDefinition
corresponding to given path (rooted at this store).default <ID extends ItemDefinition<?>>
IDfindItemDefinition
(@NotNull ItemPath path) ReturnsItemDefinition
corresponding to given path (rooted at this store).default <ID extends ItemDefinition<?>>
IDfindItemDefinition
(@NotNull ItemPath path, @NotNull Class<ID> clazz) Returns a definition of given type corresponding to given path (rooted at this store).default PrismReferenceDefinition
findReferenceDefinition
(@NotNull ItemPath path) ReturnsPrismReferenceDefinition
corresponding to given path (rooted at this store).default @Nullable String
When resolving unqualified names for items contained in this CTD, what should be the default namespace to look into at first.default @NotNull List<? extends ItemDefinition<?>>
Returns definitions for all inner items.default List<ItemDiagramSpecification>
default String
Returns display name.default Integer
Specifies an order in which the item should be displayed relative to other items at the same level.default @Nullable QName
If not null, indicates that this type defines the structure of `extension` element of a given type.default String
getHelp()
Returns help string.When resolving unqualified names for items contained in this CTD, what namespace(s) should be ignored.default @Nullable QName
Name of super type of this complex type definition.default @NotNull QName
Returns a name of the type for this definition.default boolean
default boolean
default boolean
Flag indicating whether this type was marked as "container" in the original schema.default boolean
True for definitions that are more important than others and that should be emphasized during presentation.default boolean
isEmpty()
Returns true if there are no item definitions.default boolean
True if the complex type definition is a type dedicated to hold so-called https://docs.evolveum.com/midpoint/devel/design/xml-json-yaml-vs-xnode-vs-internal-data/heterogeneous-lists/[heterogeneous lists].default boolean
Flag indicating whether this type was marked as "object" in the original schema.default boolean
Flag indicating whether this type was marked as "objectReference" in the original schema.default boolean
True if the complex type definition contains xsd:any (directly or indirectly).default Optional<ItemDefinition<?>>
itemOrSubstitution
(QName name) default void
merge
(ComplexTypeDefinition otherComplexTypeDef) Copies cloned definitions from the other type definition into this one.default Optional<ItemDefinition<?>>
substitution
(QName name) default void
trimTo
(@NotNull Collection<ItemPath> paths) Trims the definition (and any definitions it refers to) to contain only items related to given paths.Methods inherited from interface com.evolveum.midpoint.prism.ComplexTypeDefinition
clone, deepClone, getDefaultItemTypeName, getPropertyDefinitions, getXmlAttributeDefinitions, hasSubstitutions, isItemDefinitionRemoved, isStrictAnyMarker, migrateIfNeeded, mutator
Methods inherited from interface com.evolveum.midpoint.prism.Definition
checkMutableOnExposing
Methods inherited from interface com.evolveum.midpoint.prism.deleg.DefinitionDelegator
accept, accept, debugDump, debugDump, debugDump, debugDumpLazily, debugDumpLazily, getAnnotation, getAnnotations, getDeprecatedSince, getDisplayHint, getDocumentation, getDocumentationPreview, getMergerIdentifier, getMergerInstance, getMutabilityFlag, getNaturalKeyConstituents, getNaturalKeyInstance, getPlannedRemoval, getRemovedSince, getSchemaMigrations, getTypeClass, isAbstract, isDeprecated, isElaborate, isExperimental, isOptionalCleanup, isRemoved, isRuntimeSchema
Methods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable, freeze, isImmutable
Methods inherited from interface com.evolveum.midpoint.prism.LocalItemDefinitionStore
containsItemDefinition, findLocalItemDefinition, findLocalItemDefinition, findPropertyDefinition
Methods inherited from interface com.evolveum.midpoint.prism.TypeDefinition
isAssignableFrom
Methods inherited from interface com.evolveum.midpoint.prism.deleg.TypeDefinitionDelegator
canRepresent, getCompileTimeClass, getInstantiationOrder, getStaticSubTypes
-
Method Details
-
delegate
ComplexTypeDefinition delegate()- Specified by:
delegate
in interfaceDefinitionDelegator
- Specified by:
delegate
in interfaceTypeDefinitionDelegator
-
getTypeName
Description copied from interface:Definition
Returns 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:
getTypeName
in interfaceAbstractTypeDefinition
- Specified by:
getTypeName
in interfaceDefinition
- Specified by:
getTypeName
in interfaceDefinitionDelegator
- Specified by:
getTypeName
in interfaceTypeDefinitionDelegator
- Returns:
- the type name
-
getSuperType
Description copied from interface:TypeDefinition
Name of super type of this complex type definition. For example, `c:ObjectType` is a super type for `c:FocusType` which is a super type for `c:UserType`. Extension types have `c:ExtensionType` as their supertype, if no explicit supertype is specified in XSD.- Specified by:
getSuperType
in interfaceTypeDefinition
- Specified by:
getSuperType
in interfaceTypeDefinitionDelegator
-
getHelp
Description copied from interface:PrismPresentationDefinition
Returns 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:
getHelp
in interfaceDefinitionDelegator
- Specified by:
getHelp
in interfacePrismPresentationDefinition
- Specified by:
getHelp
in interfaceTypeDefinitionDelegator
- Returns:
- help string or catalog key
-
getDisplayName
Description copied from interface:PrismPresentationDefinition
Returns 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:
getDisplayName
in interfaceDefinitionDelegator
- Specified by:
getDisplayName
in interfacePrismPresentationDefinition
- Returns:
- display name string or catalog key
-
getDisplayOrder
Description copied from interface:PrismPresentationDefinition
Specifies 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:
getDisplayOrder
in interfaceDefinitionDelegator
- Specified by:
getDisplayOrder
in interfacePrismPresentationDefinition
-
isEmphasized
default boolean isEmphasized()Description copied from interface:PrismPresentationDefinition
True 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. TODO probably deprecated, isn't it?- Specified by:
isEmphasized
in interfaceDefinitionDelegator
- Specified by:
isEmphasized
in interfacePrismPresentationDefinition
-
getExtensionForType
Description copied from interface:ComplexTypeDefinition
If 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:
getExtensionForType
in interfaceComplexTypeDefinition
-
isReferenceMarker
default boolean isReferenceMarker()Description copied from interface:ComplexTypeDefinition
Flag indicating whether this type was marked as "objectReference" in the original schema.- Specified by:
isReferenceMarker
in interfaceComplexTypeDefinition
-
isContainerMarker
default boolean isContainerMarker()Description copied from interface:ComplexTypeDefinition
Flag 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:
isContainerMarker
in interfaceComplexTypeDefinition
-
findItemDefinition
default <ID extends ItemDefinition<?>> ID findItemDefinition(@NotNull @NotNull ItemPath path, @NotNull @NotNull Class<ID> clazz) Description copied from interface:LocalItemDefinitionStore
Returns a definition of given type corresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content.- Specified by:
findItemDefinition
in interfaceLocalItemDefinitionStore
-
findItemDefinition
Description copied from interface:LocalItemDefinitionStore
ReturnsItemDefinition
corresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content.- Specified by:
findItemDefinition
in interfaceLocalItemDefinitionStore
-
isObjectMarker
default boolean isObjectMarker()Description copied from interface:ComplexTypeDefinition
Flag 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:
isObjectMarker
in interfaceComplexTypeDefinition
-
findReferenceDefinition
Description copied from interface:LocalItemDefinitionStore
ReturnsPrismReferenceDefinition
corresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content.- Specified by:
findReferenceDefinition
in interfaceLocalItemDefinitionStore
-
isXsdAnyMarker
default boolean isXsdAnyMarker()Description copied from interface:ComplexTypeDefinition
True if the complex type definition contains xsd:any (directly or indirectly).- Specified by:
isXsdAnyMarker
in interfaceComplexTypeDefinition
-
findContainerDefinition
default <C extends Containerable> PrismContainerDefinition<C> findContainerDefinition(@NotNull @NotNull ItemPath path) Description copied from interface:LocalItemDefinitionStore
ReturnsPrismContainerDefinition
corresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content.- Specified by:
findContainerDefinition
in interfaceLocalItemDefinitionStore
-
isListMarker
default boolean isListMarker()Description copied from interface:ComplexTypeDefinition
True if the complex type definition is a type dedicated to hold so-called https://docs.evolveum.com/midpoint/devel/design/xml-json-yaml-vs-xnode-vs-internal-data/heterogeneous-lists/[heterogeneous lists]. See alsoDOMUtil.IS_LIST_ATTRIBUTE_NAME
andItemDefinition.isHeterogeneousListItem()
.- Specified by:
isListMarker
in interfaceComplexTypeDefinition
-
getDefaultNamespace
Description copied from interface:ComplexTypeDefinition
When 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). Set by parsing `defaultNamespace` XSD annotation.- Specified by:
getDefaultNamespace
in interfaceComplexTypeDefinition
-
getIgnoredNamespaces
Description copied from interface:ComplexTypeDefinition
When 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). Set by parsing `ignoredNamespace` XSD annotations.- Specified by:
getIgnoredNamespaces
in interfaceComplexTypeDefinition
-
merge
Description copied from interface:ComplexTypeDefinition
Copies cloned definitions from the other type definition into this one. (TODO remove from the interface?)- Specified by:
merge
in interfaceComplexTypeDefinition
-
isEmpty
default boolean isEmpty()Description copied from interface:ComplexTypeDefinition
Returns true if there are no item definitions.- Specified by:
isEmpty
in interfaceComplexTypeDefinition
-
trimTo
Description copied from interface:ComplexTypeDefinition
Trims 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:
trimTo
in interfaceComplexTypeDefinition
-
hasSubstitutions
default boolean hasSubstitutions()- Specified by:
hasSubstitutions
in interfaceComplexTypeDefinition
-
substitution
- Specified by:
substitution
in interfaceComplexTypeDefinition
-
itemOrSubstitution
- Specified by:
itemOrSubstitution
in interfaceComplexTypeDefinition
-
getDefinitions
Description copied from interface:ComplexTypeDefinition
Returns definitions for all inner items. These are of typeItemDefinition
. However, very often subtypes of this type are used, e.g. ResourceAttributeDefinition, RefinedAttributeDefinition, LayerRefinedAttributeDefinition, and so on. The returned structure is aList
because the ordering is significant, e.g. for serialization purposes. The list is unmodifiable.- Specified by:
getDefinitions
in interfaceComplexTypeDefinition
- Specified by:
getDefinitions
in interfaceLocalItemDefinitionStore
-
getDiagrams
- Specified by:
getDiagrams
in interfacePrismPresentationDefinition
-
hasOperationalOnlyItems
default boolean hasOperationalOnlyItems()- Specified by:
hasOperationalOnlyItems
in interfaceComplexTypeDefinition
-