Interface ComplexTypeDefinitionDelegator
-
- All Superinterfaces:
Cloneable
,ComplexTypeDefinition
,DebugDumpable
,Definition
,DefinitionDelegator
,Freezable
,LocalDefinitionStore
,PrismContextSensitive
,Revivable
,Serializable
,SmartVisitable<Definition>
,TypeDefinition
,TypeDefinitionDelegator
,Visitable<Definition>
- All Known Subinterfaces:
ObjectClassTypeDefinitionDelegator
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 default boolean
containsItemDefinition(QName itemName)
ComplexTypeDefinition
delegate()
default <C extends Containerable>
PrismContainerDefinition<C>findContainerDefinition(@NotNull ItemPath path)
default <C extends Containerable>
PrismContainerDefinition<C>findContainerDefinition(@NotNull String name)
default <ID extends ItemDefinition>
IDfindItemDefinition(@NotNull ItemPath path)
default <ID extends ItemDefinition>
IDfindItemDefinition(@NotNull ItemPath path, @NotNull Class<ID> clazz)
default <ID extends ItemDefinition>
IDfindLocalItemDefinition(@NotNull QName name)
default <ID extends ItemDefinition>
IDfindLocalItemDefinition(@NotNull QName name, @NotNull Class<ID> clazz, boolean caseInsensitive)
default <ID extends ItemDefinition>
IDfindNamedItemDefinition(@NotNull QName firstName, @NotNull ItemPath rest, @NotNull Class<ID> clazz)
default <T> PrismPropertyDefinition<T>
findPropertyDefinition(@NotNull ItemPath path)
default PrismReferenceDefinition
findReferenceDefinition(@NotNull ItemName name)
default PrismReferenceDefinition
findReferenceDefinition(@NotNull ItemPath path)
default @Nullable String
getDefaultNamespace()
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 QName
getExtensionForType()
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 boolean
hasSubstitutions()
default boolean
isContainerMarker()
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
isListMarker()
default boolean
isObjectMarker()
Flag indicating whether this type was marked as "object" in the original schema.default boolean
isReferenceMarker()
Flag indicating whether this type was marked as "objectReference" in the original schema.default boolean
isShared()
Is this definition shared, i.e.default boolean
isXsdAnyMarker()
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, revive, toMutable
-
Methods inherited from interface com.evolveum.midpoint.prism.deleg.DefinitionDelegator
accept, accept, debugDump, debugDump, debugDump, debugDumpLazily, debugDumpLazily, getAnnotation, getDeprecatedSince, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, getMutabilityFlag, getPlannedRemoval, getPrismContext, getProcessing, getSchemaMigrations, getSchemaRegistry, getTypeClass, getTypeClassIfKnown, 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.TypeDefinition
isAssignableFrom
-
Methods inherited from interface com.evolveum.midpoint.prism.deleg.TypeDefinitionDelegator
canRepresent, getCompileTimeClass, getInstantiationOrder, getStaticSubTypes, getSuperType
-
-
-
-
Method Detail
-
delegate
ComplexTypeDefinition delegate()
- Specified by:
delegate
in interfaceDefinitionDelegator
- Specified by:
delegate
in interfaceTypeDefinitionDelegator
-
findLocalItemDefinition
default <ID extends ItemDefinition> ID findLocalItemDefinition(@NotNull @NotNull QName name, @NotNull @NotNull Class<ID> clazz, boolean caseInsensitive)
- Specified by:
findLocalItemDefinition
in interfaceLocalDefinitionStore
-
findLocalItemDefinition
default <ID extends ItemDefinition> ID findLocalItemDefinition(@NotNull @NotNull QName name)
- Specified by:
findLocalItemDefinition
in interfaceLocalDefinitionStore
-
isShared
default boolean isShared()
Description copied from interface:ComplexTypeDefinition
Is this definition shared, i.e. used by more than one prism object? If so, it should not be e.g. trimmed. EXPERIMENTAL- Specified by:
isShared
in interfaceComplexTypeDefinition
-
findItemDefinition
default <ID extends ItemDefinition> ID findItemDefinition(@NotNull @NotNull ItemPath path)
- Specified by:
findItemDefinition
in interfaceLocalDefinitionStore
-
getExtensionForType
@Nullable default @Nullable QName 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
-
findReferenceDefinition
default PrismReferenceDefinition findReferenceDefinition(@NotNull @NotNull ItemName name)
- Specified by:
findReferenceDefinition
in interfaceLocalDefinitionStore
-
findContainerDefinition
default <C extends Containerable> PrismContainerDefinition<C> findContainerDefinition(@NotNull @NotNull String name)
- Specified by:
findContainerDefinition
in interfaceLocalDefinitionStore
-
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)
- Specified by:
findItemDefinition
in interfaceLocalDefinitionStore
-
findNamedItemDefinition
default <ID extends ItemDefinition> ID findNamedItemDefinition(@NotNull @NotNull QName firstName, @NotNull @NotNull ItemPath rest, @NotNull @NotNull Class<ID> clazz)
- Specified by:
findNamedItemDefinition
in interfaceLocalDefinitionStore
-
findPropertyDefinition
default <T> PrismPropertyDefinition<T> findPropertyDefinition(@NotNull @NotNull ItemPath path)
- Specified by:
findPropertyDefinition
in interfaceLocalDefinitionStore
-
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
default PrismReferenceDefinition findReferenceDefinition(@NotNull @NotNull ItemPath path)
- Specified by:
findReferenceDefinition
in interfaceLocalDefinitionStore
-
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)
- Specified by:
findContainerDefinition
in interfaceLocalDefinitionStore
-
isListMarker
default boolean isListMarker()
- Specified by:
isListMarker
in interfaceComplexTypeDefinition
-
getDefaultNamespace
@Nullable default @Nullable String 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).- Specified by:
getDefaultNamespace
in interfaceComplexTypeDefinition
-
getIgnoredNamespaces
@NotNull default @NotNull List<String> 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).- Specified by:
getIgnoredNamespaces
in interfaceComplexTypeDefinition
-
merge
default void merge(ComplexTypeDefinition otherComplexTypeDef)
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
default void trimTo(@NotNull @NotNull Collection<ItemPath> paths)
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
-
containsItemDefinition
default boolean containsItemDefinition(QName itemName)
- Specified by:
containsItemDefinition
in interfaceComplexTypeDefinition
-
hasSubstitutions
default boolean hasSubstitutions()
- Specified by:
hasSubstitutions
in interfaceComplexTypeDefinition
-
substitution
default Optional<ItemDefinition<?>> substitution(QName name)
- Specified by:
substitution
in interfaceComplexTypeDefinition
-
itemOrSubstitution
default Optional<ItemDefinition<?>> itemOrSubstitution(QName name)
- Specified by:
itemOrSubstitution
in interfaceComplexTypeDefinition
-
getDefinitions
@NotNull default @NotNull List<? extends ItemDefinition> getDefinitions()
Description copied from interface:ComplexTypeDefinition
Returns 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:
getDefinitions
in interfaceComplexTypeDefinition
-
getDiagrams
default List<ItemDiagramSpecification> getDiagrams()
- Specified by:
getDiagrams
in interfaceDefinition
-
-