public class PrismContainerDefinitionImpl<C extends Containerable> extends ItemDefinitionImpl<PrismContainer<C>> implements PrismContainerDefinition<C>
Property container groups properties into logical blocks. The reason for grouping may be as simple as better understandability of data structure. But the group usually means different meaning, source or structure of the data. For example, the property container is frequently used to hold properties that are dynamic, not fixed by a static schema. Such grouping also naturally translates to XML and helps to "quarantine" such properties to avoid Unique Particle Attribute problems.
Property Container contains a set of (potentially multi-valued) properties. The order of properties is not significant, regardless of the fact that it may be fixed in the XML representation. In the XML representation, each element inside Property Container must be either Property or a Property Container.
This class represents schema definition for property container. See
Definition
for more details.
Modifier and Type | Field and Description |
---|---|
protected Class<C> |
compileTimeClass |
protected ComplexTypeDefinition |
complexTypeDefinition |
heterogeneousListItem, name, substitutionHead
deprecated, deprecatedSince, displayName, displayOrder, documentation, elaborate, emphasized, experimental, help, isAbstract, isRuntimeSchema, plannedRemoval, prismContext, processing, typeName
INDENT_STRING
Constructor and Description |
---|
PrismContainerDefinitionImpl(QName name,
ComplexTypeDefinition complexTypeDefinition,
PrismContext prismContext)
The constructors should be used only occasionally (if used at all).
|
PrismContainerDefinitionImpl(QName name,
ComplexTypeDefinition complexTypeDefinition,
PrismContext prismContext,
Class<C> compileTimeClass) |
addNamespaceIfApplicable, adoptElementDefinitionFrom, canAdd, canBeDefinitionOf, canModify, canRead, copyDefinitionData, debugDumpShortToString, debugFlags, debugMultiplicity, deepClone, equals, extendToString, getMaxOccurs, getMinOccurs, getName, getNamespace, getSubstitutionHead, getValueEnumerationRef, hashCode, isDynamic, isHeterogeneousListItem, isInherited, isMandatory, isMultiValue, isOperational, isOptional, isSingleValue, isValidFor, isValidFor, setCanAdd, setCanModify, setCanRead, setDynamic, setHeterogeneousListItem, setInherited, setMaxOccurs, setMinOccurs, setName, setOperational, setReadOnly, setSubstitutionHead, setValueEnumerationRef, toString
copyDefinitionData, getAnnotation, getDeprecatedSince, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, getPlannedRemoval, getPrismContext, getProcessing, getTypeClass, getTypeClassIfKnown, getTypeName, isDeprecated, isElaborate, isEmphasized, isExperimental, isIgnored, isRuntimeSchema, setAbstract, setAnnotation, setDeprecated, setDeprecatedSince, setDisplayName, setDisplayOrder, setDocumentation, setElaborate, setEmphasized, setExperimental, setHelp, setPlannedRemoval, setProcessing, setRuntimeSchema, setTypeName
finalize, getClass, notify, notifyAll, wait, wait, wait
adoptElementDefinitionFrom, canAdd, canBeDefinitionOf, canModify, canRead, debugDumpShortToString, deepClone, getMaxOccurs, getMinOccurs, getName, getNamespace, getSubstitutionHead, getValueEnumerationRef, isDynamic, isHeterogeneousListItem, isInherited, isMandatory, isMultiValue, isOperational, isOptional, isSingleValue, isValidFor, isValidFor, setCanAdd, setCanModify, setCanRead, setMaxOccurs
getAnnotation, getDeprecatedSince, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, getPlannedRemoval, getPrismContext, getProcessing, getSchemaRegistry, getTypeClass, getTypeClassIfKnown, getTypeName, isDeprecated, isElaborate, isEmphasized, isExperimental, isIgnored, isRuntimeSchema, setAnnotation
debugDump, debugDumpLazily, debugDumpLazily
findContainerDefinition, findContainerDefinition, findContainerDefinition, findItemDefinition, findItemDefinition, findItemDefinition, findPropertyDefinition, findPropertyDefinition, findReferenceDefinition, findReferenceDefinition
protected ComplexTypeDefinition complexTypeDefinition
protected Class<C extends Containerable> compileTimeClass
public PrismContainerDefinitionImpl(@NotNull QName name, ComplexTypeDefinition complexTypeDefinition, @NotNull PrismContext prismContext)
public PrismContainerDefinitionImpl(@NotNull QName name, ComplexTypeDefinition complexTypeDefinition, @NotNull PrismContext prismContext, Class<C> compileTimeClass)
public Class<C> getCompileTimeClass()
getCompileTimeClass
in interface PrismContainerDefinition<C extends Containerable>
protected String getSchemaNamespace()
public ComplexTypeDefinition getComplexTypeDefinition()
getComplexTypeDefinition
in interface PrismContainerDefinition<C extends Containerable>
public void setComplexTypeDefinition(ComplexTypeDefinition complexTypeDefinition)
public boolean isAbstract()
isAbstract
in interface Definition
isAbstract
in class DefinitionImpl
public void revive(PrismContext prismContext)
revive
in interface ItemDefinition<PrismContainer<C extends Containerable>>
revive
in interface PrismContainerDefinition<C extends Containerable>
revive
in interface Revivable
revive
in class ItemDefinitionImpl<PrismContainer<C extends Containerable>>
public <D extends ItemDefinition> D findItemDefinition(@NotNull QName name, @NotNull Class<D> clazz, boolean caseInsensitive)
findItemDefinition
in interface LocalDefinitionStore
public String getDefaultNamespace()
getDefaultNamespace
in interface PrismContainerDefinition<C extends Containerable>
public List<String> getIgnoredNamespaces()
getIgnoredNamespaces
in interface PrismContainerDefinition<C extends Containerable>
public <ID extends ItemDefinition> ID findItemDefinition(@NotNull ItemPath path, @NotNull Class<ID> clazz)
findItemDefinition
in interface ItemDefinition<PrismContainer<C extends Containerable>>
findItemDefinition
in interface LocalDefinitionStore
findItemDefinition
in class ItemDefinitionImpl<PrismContainer<C extends Containerable>>
public <ID extends ItemDefinition> ID findNamedItemDefinition(@NotNull QName firstName, @NotNull ItemPath rest, @NotNull Class<ID> clazz)
findNamedItemDefinition
in interface LocalDefinitionStore
public List<? extends ItemDefinition> getDefinitions()
WARNING: This may return definitions from the associated complex type. Therefore changing the returned set may influence also the complex type definition.
The set contains all property definitions of all types that were parsed. Order of definitions is insignificant.
getDefinitions
in interface PrismContainerDefinition<C extends Containerable>
public List<PrismPropertyDefinition> getPropertyDefinitions()
The set contains all property definitions of all types that were parsed. Order of definitions is insignificant.
The returned set is immutable! All changes may be lost.
getPropertyDefinitions
in interface PrismContainerDefinition<C extends Containerable>
@NotNull public PrismContainer<C> instantiate() throws SchemaException
ItemDefinition
instantiate
in interface ItemDefinition<PrismContainer<C extends Containerable>>
SchemaException
@NotNull public PrismContainer<C> instantiate(QName elementName) throws SchemaException
ItemDefinition
instantiate
in interface ItemDefinition<PrismContainer<C extends Containerable>>
SchemaException
public ContainerDelta<C> createEmptyDelta(ItemPath path)
createEmptyDelta
in interface ItemDefinition<PrismContainer<C extends Containerable>>
createEmptyDelta
in interface PrismContainerDefinition<C extends Containerable>
public void accept(Visitor visitor)
accept
in interface Visitable
accept
in class ItemDefinitionImpl<PrismContainer<C extends Containerable>>
@NotNull public PrismContainerDefinitionImpl<C> clone()
clone
in interface Definition
clone
in interface ItemDefinition<PrismContainer<C extends Containerable>>
clone
in interface PrismContainerDefinition<C extends Containerable>
clone
in class ItemDefinitionImpl<PrismContainer<C extends Containerable>>
protected void copyDefinitionData(PrismContainerDefinitionImpl<C> clone)
public ItemDefinition deepClone(Map<QName,ComplexTypeDefinition> ctdMap, Map<QName,ComplexTypeDefinition> onThisPath, Consumer<ItemDefinition> postCloneAction)
deepClone
in interface ItemDefinition<PrismContainer<C extends Containerable>>
deepClone
in class ItemDefinitionImpl<PrismContainer<C extends Containerable>>
public PrismContainerDefinition<C> cloneWithReplacedDefinition(QName itemName, ItemDefinition newDefinition)
cloneWithReplacedDefinition
in interface PrismContainerDefinition<C extends Containerable>
public void replaceDefinition(QName itemName, ItemDefinition newDefinition)
replaceDefinition
in interface PrismContainerDefinition<C extends Containerable>
public PrismPropertyDefinitionImpl createPropertyDefinition(QName name, QName typeName)
This is the preferred method of creating a new definition.
name
- name of the property (element name)typeName
- XSD type of the propertypublic PrismPropertyDefinition createPropertyDefinition(QName name, QName typeName, int minOccurs, int maxOccurs)
This is the preferred method of creating a new definition.
name
- name of the property (element name)typeName
- XSD type of the propertyminOccurs
- minimal number of occurrencesmaxOccurs
- maximal number of occurrences (-1 means unbounded)public PrismPropertyDefinition createPropertyDefinition(QName name)
public PrismPropertyDefinition createPropertyDefinition(String localName, QName typeName)
This is the preferred method of creating a new definition.
localName
- name of the property (element name) relative to the schema namespacetypeName
- XSD type of the propertypublic PrismPropertyDefinition createPropertyDefinition(String localName, String localTypeName)
This is the preferred method of creating a new definition.
localName
- name of the property (element name) relative to the schema namespacelocalTypeName
- XSD type of the propertypublic PrismPropertyDefinition createPropertyDefinition(String localName, String localTypeName, int minOccurs, int maxOccurs)
This is the preferred method of creating a new definition.
localName
- name of the property (element name) relative to the schema namespacelocalTypeName
- XSD type of the propertyminOccurs
- minimal number of occurrencesmaxOccurs
- maximal number of occurrences (-1 means unbounded)public PrismContainerDefinition createContainerDefinition(QName name, QName typeName)
public PrismContainerDefinition createContainerDefinition(QName name, QName typeName, int minOccurs, int maxOccurs)
public PrismContainerDefinition<C> createContainerDefinition(QName name, ComplexTypeDefinition complexTypeDefinition, int minOccurs, int maxOccurs)
public boolean canBeDefinitionOf(PrismValue pvalue)
canBeDefinitionOf
in interface ItemDefinition<PrismContainer<C extends Containerable>>
public boolean canRepresent(QName specTypeQName)
canRepresent
in interface PrismContainerDefinition<C extends Containerable>
public PrismContainerValue<C> createValue()
createValue
in interface PrismContainerDefinition<C extends Containerable>
public String debugDump(int indent)
debugDump
in interface DebugDumpable
debugDump
in class DefinitionImpl
public String debugDump(int indent, IdentityHashMap<Definition,Object> seen)
debugDump
in interface Definition
public boolean isEmpty()
isEmpty
in interface PrismContainerDefinition<C extends Containerable>
protected String getDebugDumpClassName()
getDebugDumpClassName
in class DefinitionImpl
public String getDocClassName()
DefinitionImpl
getDocClassName
in class DefinitionImpl
Copyright © 2019 Evolveum. All rights reserved.