Interface MutableComplexTypeDefinition

All Superinterfaces:
Cloneable, ComplexTypeDefinition, DebugDumpable, Definition, Freezable, LocalItemDefinitionStore, MutableDefinition, MutableTypeDefinition, PrismContextSensitive, Revivable, Serializable, SmartVisitable<Definition>, TypeDefinition, Visitable<Definition>
All Known Subinterfaces:
MutableResourceObjectClassDefinition
All Known Implementing Classes:
ResourceObjectClassDefinitionImpl

public interface MutableComplexTypeDefinition extends ComplexTypeDefinition, MutableTypeDefinition
An interface to mutate the definition of a complex type. TODO document the interface (e.g. what should add(ItemDefinition) method do in the case of duplicate definitions, etc)
  • Method Details

    • add

      void add(ItemDefinition<?> definition)
    • delete

      void delete(QName itemName)
    • createPropertyDefinition

      MutablePrismPropertyDefinition<?> createPropertyDefinition(QName name, QName typeName)
    • createPropertyDefinition

      MutablePrismPropertyDefinition<?> createPropertyDefinition(String name, QName typeName)
    • clone

      @NotNull @NotNull 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 interface ComplexTypeDefinition
      Specified by:
      clone in interface Definition
    • setExtensionForType

      void setExtensionForType(QName type)
    • setAbstract

      void setAbstract(boolean value)
    • setSuperType

      void setSuperType(QName superType)
    • setObjectMarker

      void setObjectMarker(boolean value)
    • setContainerMarker

      void setContainerMarker(boolean value)
    • setReferenceMarker

      void setReferenceMarker(boolean value)
    • setDefaultNamespace

      void setDefaultNamespace(String namespace)
    • setIgnoredNamespaces

      void setIgnoredNamespaces(@NotNull @NotNull List<String> ignoredNamespaces)
    • setXsdAnyMarker

      void setXsdAnyMarker(boolean value)
    • setListMarker

      void setListMarker(boolean value)
    • setCompileTimeClass

      void setCompileTimeClass(Class<?> compileTimeClass)
    • replaceDefinition

      void replaceDefinition(@NotNull @NotNull QName itemName, ItemDefinition<?> newDefinition)
      Replaces a definition for an item with given name. TODO specify the behavior more precisely
    • addSubstitution

      @Experimental void addSubstitution(ItemDefinition<?> itemDef, ItemDefinition<?> maybeSubst)
    • setAttributeDefinitions

      @Experimental default void setAttributeDefinitions(List<PrismPropertyDefinition<?>> definitions)
    • setStrictAnyMarker

      default void setStrictAnyMarker(boolean marker)