Class NativeComplexTypeDefinitionImpl
java.lang.Object
com.evolveum.midpoint.prism.AbstractFreezable
com.evolveum.midpoint.schema.processor.NativeComplexTypeDefinitionImpl
- All Implemented Interfaces:
AbstractTypeDefinition
,ComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder
,Definition.DefinitionBuilder
,DefinitionFragmentBuilder
,Freezable
,PrismLifecycleDefinition.Mutable
,PrismPresentationDefinition.Mutable
,SerializableComplexTypeDefinition
,SerializableDefinition
,TypeDefinition.TypeDefinitionLikeBuilder
,NativeObjectClassDefinition
,NativeObjectClassDefinition.NativeObjectClassDefinitionBuilder
,NativeObjectClassUcfDefinition
,NativeObjectClassUcfDefinition.Delegable
,NativeObjectClassUcfDefinition.Mutable
,NativeObjectClassUcfDefinition.Mutable.Delegable
,NativeReferenceTypeDefinition
,DebugDumpable
,Serializable
,Cloneable
public class NativeComplexTypeDefinitionImpl
extends AbstractFreezable
implements NativeObjectClassDefinition, NativeReferenceTypeDefinition, AbstractTypeDefinition, SerializableComplexTypeDefinition, NativeObjectClassUcfDefinition.Delegable, NativeObjectClassUcfDefinition.Mutable.Delegable, NativeObjectClassDefinition.NativeObjectClassDefinitionBuilder
Represents native object class or association class definition.
Similarly to
NativeShadowAttributeDefinitionImpl
, it is practical to merge these two into one implementation class.
The main reason is that both correspond to XSD complex type definition, and we need to instantiate them as early as
`xsd:complexType` is encountered in the schema; without reading the annotations up front.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.evolveum.midpoint.schema.processor.NativeObjectClassDefinition
NativeObjectClassDefinition.NativeObjectClassDefinitionBuilder
Nested classes/interfaces inherited from interface com.evolveum.midpoint.schema.processor.NativeObjectClassUcfDefinition
NativeObjectClassUcfDefinition.Data, NativeObjectClassUcfDefinition.Delegable, NativeObjectClassUcfDefinition.Mutable
Nested classes/interfaces inherited from interface com.evolveum.midpoint.schema.processor.NativeObjectClassUcfDefinition.Mutable
NativeObjectClassUcfDefinition.Mutable.Delegable
Nested classes/interfaces inherited from interface com.evolveum.midpoint.schema.processor.NativeReferenceTypeDefinition
NativeReferenceTypeDefinition.NativeParticipant
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismLifecycleDefinition.Mutable
PrismLifecycleDefinition.Mutable.Delegable
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismPresentationDefinition.Mutable
PrismPresentationDefinition.Mutable.Delegable
-
Field Summary
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
Method Summary
Modifier and TypeMethodDescriptionvoid
add
(DefinitionFragmentBuilder builder) Should provide and register compile time class.void
addParticipant
(@NotNull String objectClassName, @NotNull ItemName associationName, @NotNull ShadowReferenceParticipantRole role) clone()
debugDump
(int indent) findReferenceAttributeDefinition
(@NotNull QName attrName) findSimpleAttributeDefinition
(@NotNull QName attrName) @NotNull List<NativeShadowAttributeDefinitionImpl<?>>
@NotNull Collection<? extends SerializableItemDefinition>
@Nullable QName
Collection<DefinitionFeature<?,
?, ? super com.sun.xml.xsom.XSComplexType, ?>> Returns a set of "extra" features for the CTD-like definition currently being built.Collection<? extends DefinitionFeature<?,
?, ?, ?>> getHelp()
@NotNull String
getName()
ShadowReferenceParticipantRole.OBJECT
participants in this association.@NotNull QName
getQName()
@NotNull List<? extends NativeShadowReferenceAttributeDefinition>
@NotNull List<? extends NativeShadowSimpleAttributeDefinition<?>>
ShadowReferenceParticipantRole.SUBJECT
participants in this association.@Nullable QName
@NotNull QName
boolean
boolean
boolean
boolean
boolean
boolean
newContainerLikeDefinition
(QName itemName, AbstractTypeDefinition ctd) newObjectLikeDefinition
(QName itemName, AbstractTypeDefinition ctd) newPropertyLikeDefinition
(QName elementName, QName typeName) protected void
void
void
setDisplayName
(String displayName) void
setDisplayOrder
(Integer displayOrder) void
setResourceObject
(boolean isResourceObjectClass) toString()
ucfData()
Methods inherited from class com.evolveum.midpoint.prism.AbstractFreezable
freeze, freeze, freezeAll, freezeNullableList, isImmutable, isMutable
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDumpLazily, debugDumpLazily
Methods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable
Methods inherited from interface com.evolveum.midpoint.schema.processor.NativeObjectClassDefinition
isPrimaryIdentifier, isSecondaryIdentifier
Methods inherited from interface com.evolveum.midpoint.schema.processor.NativeObjectClassDefinition.NativeObjectClassDefinitionBuilder
addSchemaMigration, addXmlAttributeDefinition, setAbstract, setContainerMarker, setDefaultItemTypeName, setDefaultNamespace, setDeprecated, setDeprecatedSince, setDiagrams, setDisplayHint, setDocumentation, setEmphasized, setExperimental, setExtensionForType, setHelp, setIgnoredNamespaces, setInstantiationOrder, setListMarker, setObjectMarker, setPlannedRemoval, setReferenceMarker, setRemoved, setRemovedSince, setRuntimeSchema, setSchemaMigrations, setStrictAnyMarker, setSuperType, setXsdAnyMarker
Methods inherited from interface com.evolveum.midpoint.schema.processor.NativeObjectClassUcfDefinition.Delegable
getDescriptionAttributeName, getDisplayNameAttributeName, getNamingAttributeName, getNativeObjectClassName, getPrimaryIdentifierName, getSecondaryIdentifierName, isAuxiliary, isDefaultAccountDefinition
Methods inherited from interface com.evolveum.midpoint.schema.processor.NativeObjectClassUcfDefinition.Mutable.Delegable
setAuxiliary, setDefaultAccountDefinition, setDescriptionAttributeName, setDisplayNameAttributeName, setNamingAttributeName, setNativeObjectClassName, setPrimaryIdentifierName, setSecondaryIdentifierName
-
Method Details
-
getName
- Specified by:
getName
in interfaceNativeObjectClassDefinition
- Specified by:
getName
in interfaceNativeReferenceTypeDefinition
-
getQName
- Specified by:
getQName
in interfaceNativeObjectClassDefinition
-
isAssociation
public boolean isAssociation() -
setAssociation
public void setAssociation() -
setResourceObject
public void setResourceObject(boolean isResourceObjectClass) - Specified by:
setResourceObject
in interfaceNativeObjectClassDefinition.NativeObjectClassDefinitionBuilder
-
ucfData
- Specified by:
ucfData
in interfaceNativeObjectClassUcfDefinition.Delegable
- Specified by:
ucfData
in interfaceNativeObjectClassUcfDefinition.Mutable.Delegable
-
getAttributeDefinitions
- Specified by:
getAttributeDefinitions
in interfaceNativeObjectClassDefinition
-
getSimpleAttributeDefinitions
@NotNull public @NotNull List<? extends NativeShadowSimpleAttributeDefinition<?>> getSimpleAttributeDefinitions()- Specified by:
getSimpleAttributeDefinitions
in interfaceNativeObjectClassDefinition
-
getReferenceAttributeDefinitions
@NotNull public @NotNull List<? extends NativeShadowReferenceAttributeDefinition> getReferenceAttributeDefinitions()- Specified by:
getReferenceAttributeDefinitions
in interfaceNativeObjectClassDefinition
-
add
Description copied from interface:ComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder
Should provide and register compile time class.- Specified by:
add
in interfaceComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder
-
findSimpleAttributeDefinition
public NativeShadowSimpleAttributeDefinition<?> findSimpleAttributeDefinition(@NotNull @NotNull QName attrName) - Specified by:
findSimpleAttributeDefinition
in interfaceNativeObjectClassDefinition
-
findReferenceAttributeDefinition
public NativeShadowReferenceAttributeDefinition findReferenceAttributeDefinition(@NotNull @NotNull QName attrName) - Specified by:
findReferenceAttributeDefinition
in interfaceNativeObjectClassDefinition
-
getSubjects
Description copied from interface:NativeReferenceTypeDefinition
ShadowReferenceParticipantRole.SUBJECT
participants in this association. Never empty.- Specified by:
getSubjects
in interfaceNativeReferenceTypeDefinition
-
getObjects
Description copied from interface:NativeReferenceTypeDefinition
ShadowReferenceParticipantRole.OBJECT
participants in this association. Never empty.- Specified by:
getObjects
in interfaceNativeReferenceTypeDefinition
-
addParticipant
public void addParticipant(@NotNull @NotNull String objectClassName, @NotNull @NotNull ItemName associationName, @NotNull @NotNull ShadowReferenceParticipantRole role) - Specified by:
addParticipant
in interfaceNativeReferenceTypeDefinition
-
getTypeName
- Specified by:
getTypeName
in interfaceAbstractTypeDefinition
- Specified by:
getTypeName
in interfaceComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder
- Specified by:
getTypeName
in interfaceSerializableComplexTypeDefinition
-
isRuntimeSchema
public boolean isRuntimeSchema()- Specified by:
isRuntimeSchema
in interfaceComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder
-
isContainerMarker
public boolean isContainerMarker()- Specified by:
isContainerMarker
in interfaceComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder
- Specified by:
isContainerMarker
in interfaceSerializableComplexTypeDefinition
-
setDisplayName
- Specified by:
setDisplayName
in interfacePrismPresentationDefinition.Mutable
-
setDisplayOrder
- Specified by:
setDisplayOrder
in interfacePrismPresentationDefinition.Mutable
-
newPropertyLikeDefinition
public <T> NativeShadowSimpleAttributeDefinition.NativeShadowAttributeDefinitionBuilder<T> newPropertyLikeDefinition(QName elementName, QName typeName) - Specified by:
newPropertyLikeDefinition
in interfaceComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder
- Specified by:
newPropertyLikeDefinition
in interfaceNativeObjectClassDefinition.NativeObjectClassDefinitionBuilder
-
newContainerLikeDefinition
public ItemDefinition.ItemDefinitionLikeBuilder newContainerLikeDefinition(QName itemName, AbstractTypeDefinition ctd) - Specified by:
newContainerLikeDefinition
in interfaceComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder
-
newObjectLikeDefinition
public ItemDefinition.ItemDefinitionLikeBuilder newObjectLikeDefinition(QName itemName, AbstractTypeDefinition ctd) - Specified by:
newObjectLikeDefinition
in interfaceComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder
-
getExtraFeaturesToParse
public Collection<DefinitionFeature<?,?, getExtraFeaturesToParse()? super com.sun.xml.xsom.XSComplexType, ?>> Description copied from interface:ComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder
Returns a set of "extra" features for the CTD-like definition currently being built. These are features that are not processed by the standard parser; they are known only to the upper layers. The input for parsing CTD-like definitions isXSComplexType
, so they must accept it. All these features must be applicable to "this" builder. I am not sure how to state this in Java. The workaround isDefinitionFeature.asForBuilder(Class)
method.- Specified by:
getExtraFeaturesToParse
in interfaceComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder
-
getExtraFeaturesToSerialize
- Specified by:
getExtraFeaturesToSerialize
in interfaceSerializableDefinition
-
getSuperType
- Specified by:
getSuperType
in interfaceSerializableComplexTypeDefinition
-
getExtensionForType
- Specified by:
getExtensionForType
in interfaceSerializableComplexTypeDefinition
-
getDefinitionsToSerialize
@NotNull public @NotNull Collection<? extends SerializableItemDefinition> getDefinitionsToSerialize()- Specified by:
getDefinitionsToSerialize
in interfaceSerializableComplexTypeDefinition
-
isXsdAnyMarker
public boolean isXsdAnyMarker()- Specified by:
isXsdAnyMarker
in interfaceSerializableComplexTypeDefinition
-
isObjectMarker
public boolean isObjectMarker()- Specified by:
isObjectMarker
in interfaceSerializableComplexTypeDefinition
-
getDisplayName
- Specified by:
getDisplayName
in interfaceSerializableDefinition
-
getDisplayOrder
- Specified by:
getDisplayOrder
in interfaceSerializableDefinition
-
getHelp
- Specified by:
getHelp
in interfaceSerializableDefinition
-
isEmphasized
public boolean isEmphasized()- Specified by:
isEmphasized
in interfaceSerializableDefinition
-
getDisplayHint
- Specified by:
getDisplayHint
in interfaceSerializableDefinition
-
getDocumentation
- Specified by:
getDocumentation
in interfaceSerializableDefinition
-
getObjectBuilt
- Specified by:
getObjectBuilt
in interfaceDefinitionFragmentBuilder
-
clone
- Specified by:
clone
in interfaceNativeObjectClassDefinition
- Overrides:
clone
in classObject
-
toString
-
debugDump
- Specified by:
debugDump
in interfaceDebugDumpable
-
performFreeze
protected void performFreeze()- Overrides:
performFreeze
in classAbstractFreezable
-