TypeDefinitionExtendibleEnumerationImpl (Media Authoring with Java API)
Date: 2016-02-05

tv.amwa.maj.meta.impl

## Class TypeDefinitionExtendibleEnumerationImpl

- java.lang.Object
- - tv.amwa.maj.meta.impl.MetaDefinitionImpl
  - - tv.amwa.maj.meta.impl.TypeDefinitionImpl
    - - tv.amwa.maj.meta.impl.SingletonTypeDefinitionImpl
      - - tv.amwa.maj.meta.impl.TypeDefinitionExtendibleEnumerationImpl

- All Implemented Interfaces:
    Serializable, Cloneable, CommonConstants, MetadataObject, WeakReferenceTarget, MetaDefinition, TypeDefinition, TypeDefinitionExtendibleEnumeration, DefinitionType

      @MediaClass(uuid1=218169601,
                  uuid2=544,
                  uuid3=0,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="TypeDefinitionExtendibleEnumeration",
                  description="The TypeDefinitionExtendibleEnumeration class defines a property type that can have one of an extendible set of AUID values.",
                  symbol="TypeDefinitionExtendibleEnumeration")
      public final class TypeDefinitionExtendibleEnumerationImpl
      extends SingletonTypeDefinitionImpl
      implements TypeDefinitionExtendibleEnumeration, Serializable, Cloneable

  Implements the definition of a property type that can have one of an extendible set of AUID values.

  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `TypeDefinitionExtendibleEnumerationImpl.ExtendibleEnumerationValue`

    - ### Nested classes/interfaces inherited from class tv.amwa.maj.meta.impl.SingletonTypeDefinitionImpl

      `SingletonTypeDefinitionImpl.SingletonMethodBag`

    - ### Nested classes/interfaces inherited from class tv.amwa.maj.meta.impl.TypeDefinitionImpl

      `TypeDefinitionImpl.PropertyValueImpl`

  - ### Field Summary

    - ### Fields inherited from interface tv.amwa.maj.constant.CommonConstants

      `AAF_METADICT_NAMESPACE, AAF_METADICT_PREFIX, AAF_XML_NAMESPACE, AAF_XML_PREFIX, ApplicationPluginObjectID, ApplicationPluginsID, MAX_NUM_RGBA_COMPS, MemberOfID, ObjectClassID, ParentClassID, PropertiesID, XMLClassIDAsAttributeName`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TypeDefinitionExtendibleEnumerationImpl(AUID identification, String typeName, String symbolPrefix)` Creates and initializes the new extensible enumeration type definition, which defines a property type that can have one of an extendible set of AUID values.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `appendElement(AUID value, String name)` Appends the given element, a name and AUID pair, to this extendible enumeration type definition.
    `void` | `appendExtendibleEnumerationElementName(String elementName)`
    `void` | `appendExtendibleEnumerationElementValue(AUID extendibleEnumerationElementValue)`
    `void` | `appendMetadictElements(Node metadict, String namespace, String prefix)`
    `void` | `appendMetadictXML(Node metadict, String namespace, String prefix)` Append an XML representation of this meta definition to the given XML node.
    `void` | `clearExtendibleEnumerationElementNames()`
    `void` | `clearExtendibleEnumerationElementValues()`
    `TypeDefinitionExtendibleEnumeration` | `clone()` Create a cloned copy of this meta definition.
    `int` | `countElements()` Returns the number of enumeration elements of this extendible enumeration type definition.
    `PropertyValue` | `createFromBytes(ByteBuffer buffer)` Create a value of this type by reading the bytes in the given byte buffer.
    `PropertyValue` | `createValue(Object javaValue)` Create a property value from the given Java object.
    `PropertyValue` | `createValueFromName(String name)` Creates a property value defined by this extendible enumeration type definition using the given name.
    `AUID` | `getAUIDFromName(String name)` Returns the identifier of the enumeration element associated with the given name, as defined by this extendible enumeration type definition.
    `AUID` | `getAUIDValue(PropertyValue enumerationProperty)` Returns the AUID value associated with the given extendible enumeration property value according to this extendible enumeration type definition.
    `String` | `getElementName(int index)` Returns the name of the enumeration element at the given index in the list of elements of this extendible enumeration type definition.
    `String[]` | `getElementNames()`
    `AUID` | `getElementValue(int index)` Returns the AUID value for the enumeration element at the given index of in the list of elements of this extendible enumeration type definition.
    `AUID[]` | `getElementValues()`
    `String` | `getNameFromAUID(AUID value)` Returns the name of the enumeration element associated with the given AUID value, as defined by this extendible enumeration type definition.
    `String` | `getNameFromValue(PropertyValue enumerationProperty)` Returns the name associated with the given property value, as defined by this extendible enumeration type definition.
    `String` | `getSymbolFromValue(PropertyValue enumerationProperty)`
    `TypeCategory` | `getTypeCategory()` Returns the type category to which this type definition belongs, which corresponds to its sub interface.
    `static List<String>` | `initializeExtendibleEnumerationElementNames()`
    `static List<AUID>` | `initializeExtendibleEnumerationElementValues()`
    `long` | `lengthAsBytes(PropertyValue value)` Returns the number of bytes that the given value of this type is serialized as a sequence of bytes.
    `void` | `setAUIDValue(PropertyValue enumerationProperty, AUID value)` Sets the value of the given extendible enumeration property value to the given AUID that identifies an element of this extendible enumeration type definition.
    `List<PropertyValue>` | `writeAsBytes(PropertyValue value, ByteBuffer buffer)` Write the given property value of this type to the given byte stream.
    `List<PropertyValue>` | `writeAsStructuredStorageBytes(PropertyValue value, ByteBuffer buffer)` Write the given property value of this type to the given byte stream that is to be written to a structured storage format file.

    - ### Methods inherited from class tv.amwa.maj.meta.impl.SingletonTypeDefinitionImpl

      `setPropertyValue`

    - ### Methods inherited from class tv.amwa.maj.meta.impl.TypeDefinitionImpl

      `getNamespace, getPrefix, getPropertyValue, initalizeTypeNameMap, nameToAAFName, resolveReferences`

    - ### Methods inherited from class tv.amwa.maj.meta.impl.MetaDefinitionImpl

      `aafNameToName, appendXMLChildren, deepEquals, equals, getAAFNamesInUse, getAliases, getAUID, getComment, getDescription, getIdentification, getName, getSymbol, getWeakTargetReference, hashCode, initializeMetaDefinitionIdentification, initializeMetaDefinitionName, setAAFNamesInUse, setAliases, setDescription, setIdentification, setName, setNamespace, setPrefix, setSymbol, toString`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface tv.amwa.maj.meta.TypeDefinition

      `getPropertyValue, resolveReferences, setPropertyValue`

    - ### Methods inherited from interface tv.amwa.maj.meta.MetaDefinition

      `deepEquals, equals, getAAFNamesInUse, getAliases, getAUID, getDescription, getName, getNamespace, getPrefix, getSymbol, hashCode, setAAFNamesInUse, setDescription, setName, setNamespace, setPrefix, setSymbol, toString`

    - ### Methods inherited from interface tv.amwa.maj.industry.WeakReferenceTarget

      `getWeakTargetReference`

- - ### Constructor Detail

    - #### TypeDefinitionExtendibleEnumerationImpl

          public TypeDefinitionExtendibleEnumerationImpl(AUID identification,
                                                         @AAFString
                                                         String typeName,
                                                         String symbolPrefix)
                                                  throws NullPointerException,
                                                         DuplicateException

      Creates and initializes the new extensible enumeration type definition, which defines a property type that can have one of an extendible set of AUID values. The initial set of (possibly empty) elements must be provided as a map from element name to AUID. Further enumeration elements can then be specified using the `appendElement(AUID, String)` method.

      Creating new and unregistered type definitions is not recommended as this may cause interoperability issues with other systems. The official registry of type definitions is available from SMPTE at SMPTE Metadata Registries And Related Items. The full range of data types documented in the AAF 1.1 object specification can be accessed by name and identification using either `Warehouse.lookForType(String)` or `Warehouse.lookForType(tv.amwa.maj.record.AUID)` respectively.

      Parameters:
        `identification` - AUID to be used to identify this type.
        `typeName` - Friendly name of the type definition.
        `symbolPrefix` - Name of the type used as a prefix when serialising values to text, e.g. "`TransferCharacteristic_ITU709`".
      Throws:
        `NullPointerException` - One or more of the arguments is `null`.
        `DuplicateException` - The given representation of an extendible enumeration contains duplicate AUID values.
      See Also:
        `tv.amwa.maj.industry.ExtendibleEnumerationWarehouse`, `ExtendibleEnumerationItem`

  - ### Method Detail

    - #### getElementNames

          @MediaProperty(uuid1=50397699,
                         uuid2=1792,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="ExtendibleEnumerationElementNames",
                         aliases={"ElementNames","ExtEnumElementNames"},
                         typeName="UTF16StringArray",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=31,
                         symbol="ExtendibleEnumerationElementNames")
          public String[] getElementNames()

    - #### initializeExtendibleEnumerationElementNames

          public static final List<String> initializeExtendibleEnumerationElementNames()

    - #### clearExtendibleEnumerationElementNames

          @MediaPropertyClear(value="ExtendibleEnumerationElementNames")
          public void clearExtendibleEnumerationElementNames()

    - #### appendExtendibleEnumerationElementName

          @MediaListAppend(value="ExtendibleEnumerationElementNames")
          public void appendExtendibleEnumerationElementName(String elementName)

    - #### getElementValues

          @MediaProperty(uuid1=50397699,
                         uuid2=2048,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="ExtendibleEnumerationElementValues",
                         aliases={"ElementValues","ExtEnumElementValues"},
                         typeName="AUIDArray",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=32,
                         symbol="ExtendibleEnumerationElementValues")
          public AUID[] getElementValues()

    - #### initializeExtendibleEnumerationElementValues

          public static final List<AUID> initializeExtendibleEnumerationElementValues()

    - #### clearExtendibleEnumerationElementValues

          @MediaPropertyClear(value="ExtendibleEnumerationElementValues")
          public void clearExtendibleEnumerationElementValues()

    - #### appendExtendibleEnumerationElementValue

          @MediaListAppend(value="ExtendibleEnumerationElementValues")
          public void appendExtendibleEnumerationElementValue(AUID extendibleEnumerationElementValue)

    - #### appendElement

          public void appendElement(AUID value,
                                    String name)
                             throws NullPointerException,
                                    DuplicateException

      Description copied from interface: `TypeDefinitionExtendibleEnumeration`

      Appends the given element, a name and AUID pair, to this extendible enumeration type definition.

      Specified by:
        `appendElement` in interface `TypeDefinitionExtendibleEnumeration`
      Parameters:
        `value` - AUID for the new enumeration element to append.
        `name` - Name for the new enumeration element to append.
      Throws:
        `NullPointerException` - One or both of the arguments is/are `null`.
        `DuplicateException` - Appending the given enumeration element would introduce a duplicate value and/or duplicate name.

    - #### countElements

          public int countElements()

      Description copied from interface: `TypeDefinitionExtendibleEnumeration`

      Returns the number of enumeration elements of this extendible enumeration type definition.

      Specified by:
        `countElements` in interface `TypeDefinitionExtendibleEnumeration`
      Returns:
        Number of enumeration elements of this extendible enumeration type definition.

    - #### createValueFromName

          public PropertyValue createValueFromName(String name)
                                            throws NullPointerException,
                                                   InvalidParameterException

      Description copied from interface: `TypeDefinitionExtendibleEnumeration`

      Creates a property value defined by this extendible enumeration type definition using the given name. The name is checked to see that it is in the list of names defining elements of this enumeration.

      Specified by:
        `createValueFromName` in interface `TypeDefinitionExtendibleEnumeration`
      Parameters:
        `name` - Name to use to create a new extendible enumeration property value.
      Returns:
        New extendible enumeration property value corresponding to the given name.
      Throws:
        `NullPointerException` - The given name is `null`.
        `InvalidParameterException` - The given name does not match an element of this extendible enumeration type definition.
      See Also:
        `TypeDefinitionExtendibleEnumeration.setAUIDValue(PropertyValue, AUID)`

    - #### getAUIDValue

          public AUID getAUIDValue(PropertyValue enumerationProperty)
                            throws NullPointerException,
                                   IllegalPropertyValueException

      Description copied from interface: `TypeDefinitionExtendibleEnumeration`

      Returns the AUID value associated with the given extendible enumeration property value according to this extendible enumeration type definition.

      Specified by:
        `getAUIDValue` in interface `TypeDefinitionExtendibleEnumeration`
      Parameters:
        `enumerationProperty` - Extensible enumeration property value to find the associated AUID value for.
      Returns:
        AUID associated with the given property value by this extendible enumeration type definition.
      Throws:
        `NullPointerException` - The given extendible enumeration property value is `null`.
        `IllegalPropertyValueException` - The given property value is not defined by this extendible enumeration type definition.
      See Also:
        `TypeDefinitionExtendibleEnumeration.getNameFromAUID(AUID)`, `TypeDefinitionExtendibleEnumeration.getAUIDFromName(String)`

    - #### getElementName

          public String getElementName(int index)
                                throws IndexOutOfBoundsException

      Description copied from interface: `TypeDefinitionExtendibleEnumeration`

      Returns the name of the enumeration element at the given index in the list of elements of this extendible enumeration type definition.

      Specified by:
        `getElementName` in interface `TypeDefinitionExtendibleEnumeration`
      Parameters:
        `index` - Index of the required name.
      Returns:
        Name for the enumeration element at the given index in the list of elements of this extendible enumeration type definition.
      Throws:
        `IndexOutOfBoundsException` - The given index is outside the acceptable range for this extendible enumeration type definition.

    - #### getElementValue

          public AUID getElementValue(int index)
                               throws IndexOutOfBoundsException

      Description copied from interface: `TypeDefinitionExtendibleEnumeration`

      Returns the AUID value for the enumeration element at the given index of in the list of elements of this extendible enumeration type definition.

      Specified by:
        `getElementValue` in interface `TypeDefinitionExtendibleEnumeration`
      Parameters:
        `index` - Index of the required AUID value.
      Returns:
        AUID value for the enumeration element at the given index of the list of elements of this extendible enumeration type definition.
      Throws:
        `IndexOutOfBoundsException` - The given index is outside the acceptable range for the list of elements of this extendible enumeration type definition.

    - #### getAUIDFromName

          public AUID getAUIDFromName(String name)
                               throws NullPointerException,
                                      BadParameterException

      Description copied from interface: `TypeDefinitionExtendibleEnumeration`

      Returns the identifier of the enumeration element associated with the given name, as defined by this extendible enumeration type definition.

      Specified by:
        `getAUIDFromName` in interface `TypeDefinitionExtendibleEnumeration`
      Parameters:
        `name` - Name to use to lookup the element identifier.
      Returns:
        Identifier associated with the given name in this extendible enumeration type definition.
      Throws:
        `NullPointerException` - The given element name is `null`.
        `BadParameterException` - The given element name is not known for in the list of values of this extendible enumeration type definition.
      See Also:
        `TypeDefinitionExtendibleEnumeration.getNameFromAUID(AUID)`

    - #### getNameFromAUID

          public String getNameFromAUID(AUID value)
                                 throws NullPointerException,
                                        BadParameterException

      Description copied from interface: `TypeDefinitionExtendibleEnumeration`

      Returns the name of the enumeration element associated with the given AUID value, as defined by this extendible enumeration type definition.

      Specified by:
        `getNameFromAUID` in interface `TypeDefinitionExtendibleEnumeration`
      Parameters:
        `value` - Value to use to lookup the element name.
      Returns:
        Name associated with the given value in this extendible enumeration type definition.
      Throws:
        `NullPointerException` - The given identifier is `null`.
        `BadParameterException` - The given value is not found in the list of values of this extendible enumeration type definition.
      See Also:
        `TypeDefinitionExtendibleEnumeration.getAUIDFromName(String)`

    - #### getNameFromValue

          public String getNameFromValue(PropertyValue enumerationProperty)
                                  throws NullPointerException,
                                         IllegalPropertyValueException

      Description copied from interface: `TypeDefinitionExtendibleEnumeration`

      Returns the name associated with the given property value, as defined by this extendible enumeration type definition.

      Specified by:
        `getNameFromValue` in interface `TypeDefinitionExtendibleEnumeration`
      Parameters:
        `enumerationProperty` - Property value to lookup the name of.
      Returns:
        Name of the enumeration element of the given extendible enumeration property value.
      Throws:
        `NullPointerException` - The given extendible enumeration property value is `null`.
        `IllegalPropertyValueException` - The given property value is not defined by this extendible enumeration type definition.

    - #### getSymbolFromValue

          public String getSymbolFromValue(PropertyValue enumerationProperty)
                                    throws NullPointerException,
                                           IllegalPropertyValueException

      Throws:
        `NullPointerException`
        `IllegalPropertyValueException`

    - #### setAUIDValue

          public void setAUIDValue(PropertyValue enumerationProperty,
                                   AUID value)
                            throws NullPointerException,
                                   IllegalPropertyValueException,
                                   BadParameterException

      Description copied from interface: `TypeDefinitionExtendibleEnumeration`

      Sets the value of the given extendible enumeration property value to the given AUID that identifies an element of this extendible enumeration type definition.

      Specified by:
        `setAUIDValue` in interface `TypeDefinitionExtendibleEnumeration`
      Parameters:
        `enumerationProperty` - Extensible enumeration property value to change.
        `value` - New value to set the given property value to.
      Throws:
        `NullPointerException` - One or both of the arguments is/are `null`.
        `IllegalPropertyValueException` - The given property value is not defined by this extendible enumeration type definition.
        `BadParameterException` - The given enumeration value identifier does not identifiy an element of this extendible enumeration type.
      See Also:
        `TypeDefinitionExtendibleEnumeration.getNameFromAUID(AUID)`, `TypeDefinitionExtendibleEnumeration.getAUIDFromName(String)`, `TypeDefinitionExtendibleEnumeration.createValueFromName(String)`

    - #### createValue

          public PropertyValue createValue(Object javaValue)
                                    throws ClassCastException

      Description copied from class: `TypeDefinitionImpl`

      Create a property value from the given Java object. If the type of the object is not compatible with this type definition, a `ClassCastException` is thrown.

      Specified by:
        `createValue` in interface `TypeDefinition`
      Specified by:
        `createValue` in class `TypeDefinitionImpl`
      Parameters:
        `javaValue` - Java object to use to create a property value of this type.
      Returns:
        Property value representing the given value.
      Throws:
        `ClassCastException` - The given object cannot be cast to a property value with this type definition.

    - #### getTypeCategory

          public TypeCategory getTypeCategory()

      Description copied from interface: `TypeDefinition`

      Returns the type category to which this type definition belongs, which corresponds to its sub interface. For example, TypeCategory.Int is returned for a `TypeDefinitionInteger`.

      Specified by:
        `getTypeCategory` in interface `TypeDefinition`
      Specified by:
        `getTypeCategory` in class `TypeDefinitionImpl`
      Returns:
        Type category to which the type definition belongs.
      See Also:
        `TypeCategory`

    - #### createFromBytes

          public PropertyValue createFromBytes(ByteBuffer buffer)
                                        throws NullPointerException,
                                               EndOfDataException

      Description copied from interface: `TypeDefinition`

      Create a value of this type by reading the bytes in the given byte buffer. The buffer is assumed to have exactly the number of bytes that represent the value. For example, the length of a string value will be determined by the length (remaining bytes) in the buffer and not by reading a length value from the buffer.

      This method is able to read values written by the `TypeDefinition.writeAsBytes(PropertyValue, ByteBuffer)` method.

      Specified by:
        `createFromBytes` in interface `TypeDefinition`
      Overrides:
        `createFromBytes` in class `TypeDefinitionImpl`
      Parameters:
        `buffer` - Buffer to create a value from.
      Returns:
        Value of this type created from the given byte array.
      Throws:
        `NullPointerException` - Cannot read values from a `null` buffer.
        `EndOfDataException` - Insufficient bytes remaining in the given buffer to create a value of this type.
      See Also:
        `TypeDefinition.writeAsBytes(PropertyValue, ByteBuffer)`, `TypeDefinition.lengthAsBytes(PropertyValue)`

    - #### writeAsBytes

          public List<PropertyValue> writeAsBytes(PropertyValue value,
                                                  ByteBuffer buffer)
                                           throws NullPointerException,
                                                  IllegalPropertyValueException,
                                                  InsufficientSpaceException

      Description copied from interface: `TypeDefinition`

      Write the given property value of this type to the given byte stream. This version is most appropriate for writing KLV streams (MXF files).

      The format used to serialize the value with be compatible with the `TypeDefinition.createFromBytes(ByteBuffer)` method. The number of bytes written to the byte buffer will be the same as returned by `TypeDefinition.lengthAsBytes(PropertyValue)`.

      Specified by:
        `writeAsBytes` in interface `TypeDefinition`
      Overrides:
        `writeAsBytes` in class `TypeDefinitionImpl`
      Parameters:
        `value` - Value to write to the given buffer.
        `buffer` - Buffer to write the value to.
      Returns:
        List of any strongly referenced property values referenced from the new structure of bytes. Elements of this list will require separate serialization to the stream if the reference if to be resolved.
      Throws:
        `NullPointerException` - Cannot write from a `null` property value and/or to a `null` value.
        `IllegalPropertyValueException` - The given property value is not of this type.
        `InsufficientSpaceException` - Insufficient space to write the given value into the given buffer.
      See Also:
        `TypeDefinition.writeAsStructuredStorageBytes(PropertyValue, ByteBuffer)`, `TypeDefinition.createFromBytes(ByteBuffer)`, `TypeDefinition.lengthAsBytes(PropertyValue)`

    - #### writeAsStructuredStorageBytes

          public List<PropertyValue> writeAsStructuredStorageBytes(PropertyValue value,
                                                                   ByteBuffer buffer)
                                                            throws NullPointerException,
                                                                   IllegalPropertyValueException,
                                                                   InsufficientSpaceException

      Description copied from interface: `TypeDefinition`

      Write the given property value of this type to the given byte stream that is to be written to a structured storage format file.

      The number of bytes written to the byte buffer will be the same as returned by `TypeDefinition.lengthAsBytes(PropertyValue)`.

      Specified by:
        `writeAsStructuredStorageBytes` in interface `TypeDefinition`
      Overrides:
        `writeAsStructuredStorageBytes` in class `TypeDefinitionImpl`
      Parameters:
        `value` - Value to write to the given buffer.
        `buffer` - Buffer to write the value to.
      Returns:
        List of any strongly referenced property values referenced from the new structure of bytes. Elements of this list will require separate serialization to the stream if the reference if to be resolved.
      Throws:
        `NullPointerException` - Cannot write from a `null` property value and/or to a `null` value.
        `IllegalPropertyValueException` - The given property value is not of this type.
        `InsufficientSpaceException` - Insufficient space to write the given value into the given buffer.
      See Also:
        `TypeDefinition.writeAsBytes(PropertyValue, ByteBuffer)`, `TypeDefinition.lengthAsBytes(PropertyValue)`

    - #### lengthAsBytes

          public long lengthAsBytes(PropertyValue value)
                             throws NullPointerException,
                                    IllegalPropertyValueException

      Description copied from interface: `TypeDefinition`

      Returns the number of bytes that the given value of this type is serialized as a sequence of bytes.

      The number returned by this method is the same as the number of bytes written to a byte buffer by the `TypeDefinition.writeAsBytes(PropertyValue, ByteBuffer)` method.

      Specified by:
        `lengthAsBytes` in interface `TypeDefinition`
      Overrides:
        `lengthAsBytes` in class `TypeDefinitionImpl`
      Parameters:
        `value` - Value to find the length of when serialized to bytes.
      Returns:
        Number of bytes used to represent the given value when serialized.
      Throws:
        `NullPointerException` - Cannot compute the serialized length of a `null` value.
        `IllegalPropertyValueException` - The given property value is not of this type.
      See Also:
        `TypeDefinition.writeAsBytes(PropertyValue, ByteBuffer)`, `TypeDefinition.createFromBytes(ByteBuffer)`

    - #### appendMetadictXML

          public void appendMetadictXML(Node metadict,
                                        String namespace,
                                        String prefix)

      Description copied from interface: `MetaDefinition`

      Append an XML representation of this meta definition to the given XML node.

      Specified by:
        `appendMetadictXML` in interface `MetaDefinition`
      Overrides:
        `appendMetadictXML` in class `MetaDefinitionImpl`
      Parameters:
        `metadict` - Meta dictionary node to append a description of this node to.
      See Also:
        `CommonConstants.AAF_METADICT_NAMESPACE`

    - #### appendMetadictElements

          public void appendMetadictElements(Node metadict,
                                             String namespace,
                                             String prefix)

    - #### clone

          public TypeDefinitionExtendibleEnumeration clone()

      Description copied from interface: `MetaDefinition`

      Create a cloned copy of this meta definition.

      Specified by:
        `clone` in interface `MetaDefinition`
      Specified by:
        `clone` in interface `TypeDefinition`
      Specified by:
        `clone` in interface `TypeDefinitionExtendibleEnumeration`
      Overrides:
        `clone` in class `TypeDefinitionImpl`
      Returns:
        Cloned copy of this meta definition.

(c)2007-2016 Richard Cartwright, all rights reserved. Licensed under Apache 2 license and subject to the AMWA IPR policy.