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
- All Known Implementing Classes:
TransformableComplexTypeDefinition,TransformableComplexTypeDefinition.TrCompositeObjectDefinition,TransformableComplexTypeDefinition.TrResourceObjectClassDefinition,TransformableComplexTypeDefinition.TrResourceObjectDefinition,TransformableComplexTypeDefinition.TrResourceObjectTypeDefinition
public interface ComplexTypeDefinitionDelegator extends TypeDefinitionDelegator, ComplexTypeDefinition
-
-
Field Summary
-
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description ComplexTypeDefinitiondelegate()default <C extends Containerable>
PrismContainerDefinition<C>findContainerDefinition(@NotNull ItemPath path)ReturnsPrismContainerDefinitioncorresponding to given path (rooted at this store).default <ID extends ItemDefinition<?>>
IDfindItemDefinition(@NotNull ItemPath path)ReturnsItemDefinitioncorresponding 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 PrismReferenceDefinitionfindReferenceDefinition(@NotNull ItemPath path)ReturnsPrismReferenceDefinitioncorresponding to given path (rooted at this store).default @Nullable StringgetDefaultNamespace()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<?>>getDefinitions()Returns definitions for all inner items.default List<ItemDiagramSpecification>getDiagrams()default @Nullable QNamegetExtensionForType()If not null, indicates that this type defines the structure of `extension` element of a given type.default @NotNull List<String>getIgnoredNamespaces()When resolving unqualified names for items contained in this CTD, what namespace(s) should be ignored.default booleanhasOperationalOnlyItems()default booleanhasSubstitutions()default booleanisContainerMarker()Flag indicating whether this type was marked as "container" in the original schema.default booleanisEmpty()Returns true if there are no item definitions.default booleanisListMarker()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 booleanisObjectMarker()Flag indicating whether this type was marked as "object" in the original schema.default booleanisReferenceMarker()Flag indicating whether this type was marked as "objectReference" in the original schema.default booleanisXsdAnyMarker()True if the complex type definition contains xsd:any (directly or indirectly).default Optional<ItemDefinition<?>>itemOrSubstitution(QName name)default voidmerge(ComplexTypeDefinition otherComplexTypeDef)Copies cloned definitions from the other type definition into this one.default Optional<ItemDefinition<?>>substitution(QName name)default 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 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, getSchemaMigrations, getSchemaRegistry, getTypeClass, 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.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 Detail
-
delegate
ComplexTypeDefinition delegate()
- Specified by:
delegatein interfaceDefinitionDelegator- Specified by:
delegatein interfaceTypeDefinitionDelegator
-
getExtensionForType
@Nullable default @Nullable 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
-
isReferenceMarker
default boolean isReferenceMarker()
Description copied from interface:ComplexTypeDefinitionFlag indicating whether this type was marked as "objectReference" in the original schema.- Specified by:
isReferenceMarkerin interfaceComplexTypeDefinition
-
isContainerMarker
default 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
-
findItemDefinition
default <ID extends ItemDefinition<?>> ID findItemDefinition(@NotNull @NotNull ItemPath path, @NotNull @NotNull Class<ID> clazz)
Description copied from interface:LocalItemDefinitionStoreReturns 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:
findItemDefinitionin interfaceLocalItemDefinitionStore
-
findItemDefinition
default <ID extends ItemDefinition<?>> ID findItemDefinition(@NotNull @NotNull ItemPath path)
Description copied from interface:LocalItemDefinitionStoreReturnsItemDefinitioncorresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content.- Specified by:
findItemDefinitionin interfaceLocalItemDefinitionStore
-
isObjectMarker
default 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
-
findReferenceDefinition
default PrismReferenceDefinition findReferenceDefinition(@NotNull @NotNull ItemPath path)
Description copied from interface:LocalItemDefinitionStoreReturnsPrismReferenceDefinitioncorresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content.- Specified by:
findReferenceDefinitionin interfaceLocalItemDefinitionStore
-
isXsdAnyMarker
default boolean isXsdAnyMarker()
Description copied from interface:ComplexTypeDefinitionTrue if the complex type definition contains xsd:any (directly or indirectly).- Specified by:
isXsdAnyMarkerin interfaceComplexTypeDefinition
-
findContainerDefinition
default <C extends Containerable> PrismContainerDefinition<C> findContainerDefinition(@NotNull @NotNull ItemPath path)
Description copied from interface:LocalItemDefinitionStoreReturnsPrismContainerDefinitioncorresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content.- Specified by:
findContainerDefinitionin interfaceLocalItemDefinitionStore
-
isListMarker
default boolean isListMarker()
Description copied from interface:ComplexTypeDefinitionTrue 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_NAMEandItemDefinition.isHeterogeneousListItem().- Specified by:
isListMarkerin interfaceComplexTypeDefinition
-
getDefaultNamespace
@Nullable default @Nullable 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). Set by parsing `defaultNamespace` XSD annotation.- Specified by:
getDefaultNamespacein interfaceComplexTypeDefinition
-
getIgnoredNamespaces
@NotNull default @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). Set by parsing `ignoredNamespace` XSD annotations.- Specified by:
getIgnoredNamespacesin interfaceComplexTypeDefinition
-
merge
default 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
-
isEmpty
default boolean isEmpty()
Description copied from interface:ComplexTypeDefinitionReturns true if there are no item definitions.- Specified by:
isEmptyin interfaceComplexTypeDefinition
-
trimTo
default 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
-
hasSubstitutions
default boolean hasSubstitutions()
- Specified by:
hasSubstitutionsin interfaceComplexTypeDefinition
-
substitution
default Optional<ItemDefinition<?>> substitution(QName name)
- Specified by:
substitutionin interfaceComplexTypeDefinition
-
itemOrSubstitution
default Optional<ItemDefinition<?>> itemOrSubstitution(QName name)
- Specified by:
itemOrSubstitutionin interfaceComplexTypeDefinition
-
getDefinitions
@NotNull default @NotNull List<? extends ItemDefinition<?>> getDefinitions()
Description copied from interface:ComplexTypeDefinitionReturns 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 aListbecause the ordering is significant, e.g. for serialization purposes. The list is unmodifiable.- Specified by:
getDefinitionsin interfaceComplexTypeDefinition- Specified by:
getDefinitionsin interfaceLocalItemDefinitionStore
-
getDiagrams
default List<ItemDiagramSpecification> getDiagrams()
- Specified by:
getDiagramsin interfaceDefinition
-
hasOperationalOnlyItems
default boolean hasOperationalOnlyItems()
- Specified by:
hasOperationalOnlyItemsin interfaceComplexTypeDefinition
-
-