Interface ComplexTypeDefinitionDelegator
- All Superinterfaces:
Cloneable
,ComplexTypeDefinition
,DebugDumpable
,Definition
,DefinitionDelegator
,Freezable
,LocalItemDefinitionStore
,PrismContextSensitive
,Revivable
,Serializable
,SmartVisitable<Definition>
,TypeDefinition
,TypeDefinitionDelegator
,Visitable<Definition>
- All Known Subinterfaces:
CompositeObjectDefinitionDelegator
,ResourceObjectClassDefinitionDelegator
,ResourceObjectDefinitionDelegator
,ResourceObjectTypeDefinitionDelegator
public interface ComplexTypeDefinitionDelegator
extends TypeDefinitionDelegator, ComplexTypeDefinition
-
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 @Nullable QName
If not null, indicates that this type defines the structure of `extension` element of a given type.When resolving unqualified names for items contained in this CTD, what namespace(s) should be ignored.default boolean
default boolean
default boolean
Flag indicating whether this type was marked as "container" in the original schema.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, getXmlAttributeDefinitions, hasSubstitutions, isItemDefinitionRemoved, isStrictAnyMarker, toMutable
Methods inherited from interface com.evolveum.midpoint.prism.deleg.DefinitionDelegator
accept, accept, debugDump, debugDump, debugDump, debugDumpLazily, debugDumpLazily, getAnnotation, getAnnotations, getDeprecatedSince, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, getMutabilityFlag, getPlannedRemoval, getPrismContext, getProcessing, getRemovedSince, getSchemaMigrations, getSchemaRegistry, getTypeClass, getTypeName, isAbstract, isDeprecated, isElaborate, isEmphasized, isExperimental, isIgnored, isRemoved, isRuntimeSchema, setAnnotation
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, getSuperType
-
Method Details
-
delegate
ComplexTypeDefinition delegate()- Specified by:
delegate
in interfaceDefinitionDelegator
- Specified by:
delegate
in interfaceTypeDefinitionDelegator
-
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 interfaceDefinition
-
hasOperationalOnlyItems
default boolean hasOperationalOnlyItems()- Specified by:
hasOperationalOnlyItems
in interfaceComplexTypeDefinition
-