Class TransformableComplexTypeDefinition
- java.lang.Object
-
- com.evolveum.midpoint.model.impl.schema.transform.TransformableDefinition
-
- com.evolveum.midpoint.model.impl.schema.transform.TransformableComplexTypeDefinition
-
- All Implemented Interfaces:
ComplexTypeDefinition
,Definition
,ComplexTypeDefinitionDelegator
,DefinitionDelegator
,TypeDefinitionDelegator
,Freezable
,LocalDefinitionStore
,MutableComplexTypeDefinition
,MutableDefinition
,MutableTypeDefinition
,PrismContextSensitive
,Revivable
,SmartVisitable<Definition>
,TypeDefinition
,Visitable<Definition>
,DebugDumpable
,Serializable
,Cloneable
- Direct Known Subclasses:
TransformableComplexTypeDefinition.ObjectClass
public class TransformableComplexTypeDefinition extends TransformableDefinition implements ComplexTypeDefinitionDelegator
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TransformableComplexTypeDefinition.ObjectClass
-
Field Summary
-
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
-
Constructor Summary
Constructors Constructor Description TransformableComplexTypeDefinition(ComplexTypeDefinition delegate)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Default Methods Modifier and Type Method Description default void
add(ItemDefinition<?> definition)
default void
addDiagram(ItemDiagramSpecification diagram)
default void
addSchemaMigration(SchemaMigration schemaMigration)
default void
addSubstitution(ItemDefinition<?> itemDef, ItemDefinition<?> maybeSubst)
ComplexTypeDefinition
clone()
Does a shallow clone of this definition (i.e.TransformableComplexTypeDefinition
copy()
default MutablePrismPropertyDefinition<?>
createPropertyDefinition(String name, QName typeName)
default MutablePrismPropertyDefinition<?>
createPropertyDefinition(QName name, QName typeName)
@NotNull ComplexTypeDefinition
deepClone(Map<QName,ComplexTypeDefinition> ctdMap, Map<QName,ComplexTypeDefinition> onThisPath, Consumer<ItemDefinition> postCloneAction)
Does a deep clone of this definition.ComplexTypeDefinition
delegate()
void
delete(QName itemName)
<ID extends ItemDefinition>
IDfindItemDefinition(@NotNull ItemPath path)
<ID extends ItemDefinition>
IDfindItemDefinition(@NotNull ItemPath path, @NotNull Class<ID> clazz)
<ID extends ItemDefinition>
IDfindLocalItemDefinition(@NotNull QName name)
<ID extends ItemDefinition>
IDfindLocalItemDefinition(@NotNull QName name, @NotNull Class<ID> clazz, boolean caseInsensitive)
<ID extends ItemDefinition>
IDfindNamedItemDefinition(@NotNull QName firstName, @NotNull ItemPath rest, @NotNull Class<ID> clazz)
void
freeze()
static TransformableComplexTypeDefinition
from(ComplexTypeDefinition complexTypeDefinition)
@NotNull List<? extends ItemDefinition<?>>
getDefinitions()
Returns definitions for all inner items.boolean
isEmpty()
Returns true if there are no item definitions.boolean
isImmutable()
boolean
isItemDefinitionRemoved(QName itemName)
This allows to distinguish between missing and explicitly removed definitions.Optional<ItemDefinition<?>>
itemOrSubstitution(QName name)
void
replaceDefinition(QName name, ItemDefinition definition)
Currently used only to replace Refined* with LayerRefined*void
revive(PrismContext prismContext)
default void
setAbstract(boolean value)
default void
setCompileTimeClass(Class<?> compileTimeClass)
default void
setContainerMarker(boolean value)
default void
setDefaultNamespace(String namespace)
default void
setDeprecated(boolean deprecated)
default void
setDisplayName(String displayName)
default void
setDisplayOrder(Integer displayOrder)
default void
setDocumentation(String value)
default void
setEmphasized(boolean emphasized)
default void
setExperimental(boolean experimental)
default void
setExtensionForType(QName type)
default void
setHelp(String help)
default void
setIgnoredNamespaces(@NotNull List<String> ignoredNamespaces)
default void
setInstantiationOrder(Integer order)
default void
setListMarker(boolean value)
default void
setObjectMarker(boolean value)
default void
setProcessing(ItemProcessing processing)
default void
setReferenceMarker(boolean value)
default void
setRuntimeSchema(boolean value)
default void
setSuperType(QName superType)
default void
setTypeName(QName typeName)
default void
setXsdAnyMarker(boolean value)
Optional<ItemDefinition<?>>
substitution(QName name)
MutableComplexTypeDefinition
toMutable()
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 class com.evolveum.midpoint.model.impl.schema.transform.TransformableDefinition
annotationsOverrides, getAnnotation, setAnnotation
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.evolveum.midpoint.prism.deleg.ComplexTypeDefinitionDelegator
containsItemDefinition, findContainerDefinition, findContainerDefinition, findPropertyDefinition, findReferenceDefinition, findReferenceDefinition, getDefaultNamespace, getDiagrams, getExtensionForType, getIgnoredNamespaces, hasSubstitutions, isContainerMarker, isListMarker, isObjectMarker, isReferenceMarker, isShared, isXsdAnyMarker, merge
-
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
-
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
-
-
-
-
Constructor Detail
-
TransformableComplexTypeDefinition
public TransformableComplexTypeDefinition(ComplexTypeDefinition delegate)
-
-
Method Detail
-
delegate
public ComplexTypeDefinition delegate()
- Specified by:
delegate
in interfaceComplexTypeDefinitionDelegator
- Specified by:
delegate
in interfaceDefinitionDelegator
- Specified by:
delegate
in interfaceTypeDefinitionDelegator
-
from
public static TransformableComplexTypeDefinition from(ComplexTypeDefinition complexTypeDefinition)
-
findLocalItemDefinition
public <ID extends ItemDefinition> ID findLocalItemDefinition(@NotNull @NotNull QName name)
- Specified by:
findLocalItemDefinition
in interfaceComplexTypeDefinitionDelegator
- Specified by:
findLocalItemDefinition
in interfaceLocalDefinitionStore
-
findLocalItemDefinition
public <ID extends ItemDefinition> ID findLocalItemDefinition(@NotNull @NotNull QName name, @NotNull @NotNull Class<ID> clazz, boolean caseInsensitive)
- Specified by:
findLocalItemDefinition
in interfaceComplexTypeDefinitionDelegator
- Specified by:
findLocalItemDefinition
in interfaceLocalDefinitionStore
-
findItemDefinition
public <ID extends ItemDefinition> ID findItemDefinition(@NotNull @NotNull ItemPath path, @NotNull @NotNull Class<ID> clazz)
- Specified by:
findItemDefinition
in interfaceComplexTypeDefinitionDelegator
- Specified by:
findItemDefinition
in interfaceLocalDefinitionStore
-
findItemDefinition
public <ID extends ItemDefinition> ID findItemDefinition(@NotNull @NotNull ItemPath path)
- Specified by:
findItemDefinition
in interfaceComplexTypeDefinitionDelegator
- Specified by:
findItemDefinition
in interfaceLocalDefinitionStore
-
findNamedItemDefinition
public <ID extends ItemDefinition> ID findNamedItemDefinition(@NotNull @NotNull QName firstName, @NotNull @NotNull ItemPath rest, @NotNull @NotNull Class<ID> clazz)
- Specified by:
findNamedItemDefinition
in interfaceComplexTypeDefinitionDelegator
- Specified by:
findNamedItemDefinition
in interfaceLocalDefinitionStore
-
getDefinitions
@NotNull public @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
- Specified by:
getDefinitions
in interfaceComplexTypeDefinitionDelegator
-
isEmpty
public boolean isEmpty()
Description copied from interface:ComplexTypeDefinition
Returns true if there are no item definitions.- Specified by:
isEmpty
in interfaceComplexTypeDefinition
- Specified by:
isEmpty
in interfaceComplexTypeDefinitionDelegator
-
substitution
public Optional<ItemDefinition<?>> substitution(QName name)
- Specified by:
substitution
in interfaceComplexTypeDefinition
- Specified by:
substitution
in interfaceComplexTypeDefinitionDelegator
-
itemOrSubstitution
public Optional<ItemDefinition<?>> itemOrSubstitution(QName name)
- Specified by:
itemOrSubstitution
in interfaceComplexTypeDefinition
- Specified by:
itemOrSubstitution
in interfaceComplexTypeDefinitionDelegator
-
revive
public void revive(PrismContext prismContext)
- Specified by:
revive
in interfaceComplexTypeDefinition
- Specified by:
revive
in interfaceRevivable
-
clone
public ComplexTypeDefinition clone()
Description copied from interface:ComplexTypeDefinition
Does a shallow clone of this definition (i.e. item definitions themselves are NOT cloned).- Specified by:
clone
in interfaceComplexTypeDefinition
- Specified by:
clone
in interfaceDefinition
- Specified by:
clone
in interfaceMutableComplexTypeDefinition
- Overrides:
clone
in classTransformableDefinition
-
isImmutable
public boolean isImmutable()
- Specified by:
isImmutable
in interfaceFreezable
-
deepClone
@NotNull public @NotNull ComplexTypeDefinition deepClone(Map<QName,ComplexTypeDefinition> ctdMap, Map<QName,ComplexTypeDefinition> onThisPath, Consumer<ItemDefinition> postCloneAction)
Description copied from interface:ComplexTypeDefinition
Does a deep clone of this definition.- Specified by:
deepClone
in interfaceComplexTypeDefinition
- Parameters:
ctdMap
- Keeps already cloned definitions when 'ultra deep cloning' is not requested. Each definition is then cloned only once.onThisPath
- Keeps already cloned definitions on the path from root to current node; in order to prevent infinite loops when doing ultra deep cloning.
-
toMutable
public MutableComplexTypeDefinition toMutable()
- Specified by:
toMutable
in interfaceComplexTypeDefinition
- Specified by:
toMutable
in interfaceDefinition
-
isItemDefinitionRemoved
public boolean isItemDefinitionRemoved(QName itemName)
Description copied from interface:ComplexTypeDefinition
This allows to distinguish between missing and explicitly removed definitions.- Specified by:
isItemDefinitionRemoved
in interfaceComplexTypeDefinition
-
replaceDefinition
public void replaceDefinition(QName name, ItemDefinition definition)
Currently used only to replace Refined* with LayerRefined*- Specified by:
replaceDefinition
in interfaceMutableComplexTypeDefinition
- Parameters:
name
-definition
-
-
delete
public void delete(QName itemName)
- Specified by:
delete
in interfaceMutableComplexTypeDefinition
-
copy
public TransformableComplexTypeDefinition copy()
-
trimTo
public 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
- Specified by:
trimTo
in interfaceComplexTypeDefinitionDelegator
-
setInstantiationOrder
public default void setInstantiationOrder(Integer order)
- Specified by:
setInstantiationOrder
in interfaceMutableTypeDefinition
-
setProcessing
public default void setProcessing(ItemProcessing processing)
- Specified by:
setProcessing
in interfaceMutableDefinition
-
setDeprecated
public default void setDeprecated(boolean deprecated)
- Specified by:
setDeprecated
in interfaceMutableDefinition
-
setExperimental
public default void setExperimental(boolean experimental)
- Specified by:
setExperimental
in interfaceMutableDefinition
-
setEmphasized
public default void setEmphasized(boolean emphasized)
- Specified by:
setEmphasized
in interfaceMutableDefinition
-
setDisplayName
public default void setDisplayName(String displayName)
- Specified by:
setDisplayName
in interfaceMutableDefinition
-
setDisplayOrder
public default void setDisplayOrder(Integer displayOrder)
- Specified by:
setDisplayOrder
in interfaceMutableDefinition
-
setHelp
public default void setHelp(String help)
- Specified by:
setHelp
in interfaceMutableDefinition
-
setRuntimeSchema
public default void setRuntimeSchema(boolean value)
- Specified by:
setRuntimeSchema
in interfaceMutableDefinition
-
setTypeName
public default void setTypeName(QName typeName)
- Specified by:
setTypeName
in interfaceMutableDefinition
-
setDocumentation
public default void setDocumentation(String value)
- Specified by:
setDocumentation
in interfaceMutableDefinition
-
addSchemaMigration
public default void addSchemaMigration(SchemaMigration schemaMigration)
- Specified by:
addSchemaMigration
in interfaceMutableDefinition
-
add
public default void add(ItemDefinition<?> definition)
- Specified by:
add
in interfaceMutableComplexTypeDefinition
-
createPropertyDefinition
public default MutablePrismPropertyDefinition<?> createPropertyDefinition(QName name, QName typeName)
- Specified by:
createPropertyDefinition
in interfaceMutableComplexTypeDefinition
-
createPropertyDefinition
public default MutablePrismPropertyDefinition<?> createPropertyDefinition(String name, QName typeName)
- Specified by:
createPropertyDefinition
in interfaceMutableComplexTypeDefinition
-
setExtensionForType
public default void setExtensionForType(QName type)
- Specified by:
setExtensionForType
in interfaceMutableComplexTypeDefinition
-
setAbstract
public default void setAbstract(boolean value)
- Specified by:
setAbstract
in interfaceMutableComplexTypeDefinition
-
setSuperType
public default void setSuperType(QName superType)
- Specified by:
setSuperType
in interfaceMutableComplexTypeDefinition
-
setObjectMarker
public default void setObjectMarker(boolean value)
- Specified by:
setObjectMarker
in interfaceMutableComplexTypeDefinition
-
setContainerMarker
public default void setContainerMarker(boolean value)
- Specified by:
setContainerMarker
in interfaceMutableComplexTypeDefinition
-
setReferenceMarker
public default void setReferenceMarker(boolean value)
- Specified by:
setReferenceMarker
in interfaceMutableComplexTypeDefinition
-
setDefaultNamespace
public default void setDefaultNamespace(String namespace)
- Specified by:
setDefaultNamespace
in interfaceMutableComplexTypeDefinition
-
setIgnoredNamespaces
public default void setIgnoredNamespaces(@NotNull @NotNull List<String> ignoredNamespaces)
- Specified by:
setIgnoredNamespaces
in interfaceMutableComplexTypeDefinition
-
setXsdAnyMarker
public default void setXsdAnyMarker(boolean value)
- Specified by:
setXsdAnyMarker
in interfaceMutableComplexTypeDefinition
-
setListMarker
public default void setListMarker(boolean value)
- Specified by:
setListMarker
in interfaceMutableComplexTypeDefinition
-
setCompileTimeClass
public default void setCompileTimeClass(Class<?> compileTimeClass)
- Specified by:
setCompileTimeClass
in interfaceMutableComplexTypeDefinition
-
addSubstitution
public default void addSubstitution(ItemDefinition<?> itemDef, ItemDefinition<?> maybeSubst)
- Specified by:
addSubstitution
in interfaceMutableComplexTypeDefinition
-
addDiagram
public default void addDiagram(ItemDiagramSpecification diagram)
- Specified by:
addDiagram
in interfaceMutableDefinition
-
-