Interface ComplexTypeDefinitionDelegator
- All Superinterfaces:
AbstractTypeDefinition,Cloneable,ComplexTypeDefinition,DebugDumpable,Definition,DefinitionDelegator,Freezable,LocalItemDefinitionStore,PrismLifecycleDefinition,PrismPresentationDefinition,Revivable,SchemaLookup.Aware,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.ValueMigratorNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.Definition
Definition.DefinitionBuilder, Definition.DefinitionMutatorNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismLifecycleDefinition
PrismLifecycleDefinition.Data, PrismLifecycleDefinition.Delegable, PrismLifecycleDefinition.MutableNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismPresentationDefinition
PrismPresentationDefinition.Data, PrismPresentationDefinition.Delegable, PrismPresentationDefinition.MutableNested 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) 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 StringWhen 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 StringReturns display name.default IntegerSpecifies an order in which the item should be displayed relative to other items at the same level.default @Nullable QNameIf not null, indicates that this type defines the structure of `extension` element of a given type.default StringgetHelp()Returns help string.When resolving unqualified names for items contained in this CTD, what namespace(s) should be ignored.default @Nullable QNameName of super type of this complex type definition.default @NotNull QNameReturns a name of the type for this definition.default booleandefault booleandefault booleanFlag indicating whether this type was marked as "container" in the original schema.default booleanTrue for definitions that are more important than others and that should be emphasized during presentation.default booleanisEmpty()Returns true if there are no item definitions.default booleanTrue 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 booleanFlag indicating whether this type was marked as "object" in the original schema.default booleanFlag indicating whether this type was marked as "objectReference" in the original schema.default booleanTrue 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, getDefaultItemTypeName, getDefaultReferenceTargetTypeName, getPropertyDefinitions, getXmlAttributeDefinitions, hasSubstitutions, isItemDefinitionRemoved, isStrictAnyMarker, migrateIfNeeded, mutatorMethods inherited from interface com.evolveum.midpoint.prism.Definition
checkMutableOnExposingMethods 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, getSchemaContextDefinition, getSchemaMigrations, getTypeClass, isAbstract, isDeprecated, isElaborate, isExperimental, isOptionalCleanup, isRemoved, isRuntimeSchemaMethods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable, freeze, isImmutableMethods inherited from interface com.evolveum.midpoint.prism.LocalItemDefinitionStore
containsItemDefinition, findLocalItemDefinition, findLocalItemDefinition, findLocalItemDefinitionByIteration, findPropertyDefinitionMethods inherited from interface com.evolveum.midpoint.prism.schema.SchemaLookup.Aware
schemaLookupMethods inherited from interface com.evolveum.midpoint.prism.TypeDefinition
isAssignableFromMethods inherited from interface com.evolveum.midpoint.prism.deleg.TypeDefinitionDelegator
canRepresent, getCompileTimeClass, getInstantiationOrder, getStaticSubTypes
-
Method Details
-
delegate
ComplexTypeDefinition delegate()- Specified by:
delegatein interfaceDefinitionDelegator- Specified by:
delegatein interfaceTypeDefinitionDelegator
-
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 interfaceAbstractTypeDefinition- Specified by:
getTypeNamein interfaceDefinition- Specified by:
getTypeNamein interfaceDefinitionDelegator- Specified by:
getTypeNamein interfaceTypeDefinitionDelegator- Returns:
- the type name
-
getSuperType
Description copied from interface:TypeDefinitionName 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:
getSuperTypein interfaceTypeDefinition- Specified by:
getSuperTypein interfaceTypeDefinitionDelegator
-
getHelp
Description copied from interface:PrismPresentationDefinitionReturns 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 interfaceDefinitionDelegator- Specified by:
getHelpin interfacePrismPresentationDefinition- Specified by:
getHelpin interfaceTypeDefinitionDelegator- Returns:
- help string or catalog key
-
getDisplayName
Description copied from interface:PrismPresentationDefinitionReturns 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 interfaceDefinitionDelegator- Specified by:
getDisplayNamein interfacePrismPresentationDefinition- Returns:
- display name string or catalog key
-
getDisplayOrder
Description copied from interface:PrismPresentationDefinitionSpecifies 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 interfaceDefinitionDelegator- Specified by:
getDisplayOrderin interfacePrismPresentationDefinition
-
isEmphasized
default boolean isEmphasized()Description copied from interface:PrismPresentationDefinitionTrue 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:
isEmphasizedin interfaceDefinitionDelegator- Specified by:
isEmphasizedin interfacePrismPresentationDefinition
-
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
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
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
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
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
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
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
- Specified by:
substitutionin interfaceComplexTypeDefinition
-
itemOrSubstitution
- Specified by:
itemOrSubstitutionin interfaceComplexTypeDefinition
-
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
- Specified by:
getDiagramsin interfacePrismPresentationDefinition
-
hasOperationalOnlyItems
default boolean hasOperationalOnlyItems()- Specified by:
hasOperationalOnlyItemsin interfaceComplexTypeDefinition
-