@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.
| Modifier and Type | Class and Description |
|---|---|
static class |
TypeDefinitionExtendibleEnumerationImpl.ExtendibleEnumerationValue |
SingletonTypeDefinitionImpl.SingletonMethodBagTypeDefinitionImpl.PropertyValueImplAAF_METADICT_NAMESPACE, AAF_METADICT_PREFIX, AAF_XML_NAMESPACE, AAF_XML_PREFIX, ApplicationPluginObjectID, ApplicationPluginsID, MAX_NUM_RGBA_COMPS, MemberOfID, ObjectClassID, ParentClassID, PropertiesID, XMLClassIDAsAttributeName| 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.
|
| 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.
|
setPropertyValuegetNamespace, getPrefix, getPropertyValue, initalizeTypeNameMap, nameToAAFName, resolveReferencesaafNameToName, appendXMLChildren, deepEquals, equals, getAAFNamesInUse, getAliases, getAUID, getComment, getDescription, getIdentification, getName, getSymbol, getWeakTargetReference, hashCode, initializeMetaDefinitionIdentification, initializeMetaDefinitionName, setAAFNamesInUse, setAliases, setDescription, setIdentification, setName, setNamespace, setPrefix, setSymbol, toStringgetPropertyValue, resolveReferences, setPropertyValuedeepEquals, equals, getAAFNamesInUse, getAliases, getAUID, getDescription, getName, getNamespace, getPrefix, getSymbol, hashCode, setAAFNamesInUse, setDescription, setName, setNamespace, setPrefix, setSymbol, toStringgetWeakTargetReferencepublic 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.
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".NullPointerException - One or more of the arguments is null.DuplicateException - The given representation of an extendible enumeration
contains duplicate AUID values.tv.amwa.maj.industry.ExtendibleEnumerationWarehouse,
ExtendibleEnumerationItem@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()
public static final List<String> initializeExtendibleEnumerationElementNames()
@MediaPropertyClear(value="ExtendibleEnumerationElementNames") public void clearExtendibleEnumerationElementNames()
@MediaListAppend(value="ExtendibleEnumerationElementNames") public void appendExtendibleEnumerationElementName(String elementName)
@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()
public static final List<AUID> initializeExtendibleEnumerationElementValues()
@MediaPropertyClear(value="ExtendibleEnumerationElementValues") public void clearExtendibleEnumerationElementValues()
@MediaListAppend(value="ExtendibleEnumerationElementValues") public void appendExtendibleEnumerationElementValue(AUID extendibleEnumerationElementValue)
public void appendElement(AUID value, String name) throws NullPointerException, DuplicateException
TypeDefinitionExtendibleEnumerationAppends the given element, a name and AUID pair, to this extendible enumeration type definition.
appendElement in interface TypeDefinitionExtendibleEnumerationvalue - AUID for the new enumeration element to append.name - Name for the new enumeration element to append.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.public int countElements()
TypeDefinitionExtendibleEnumerationReturns the number of enumeration elements of this extendible enumeration type definition.
countElements in interface TypeDefinitionExtendibleEnumerationpublic PropertyValue createValueFromName(String name) throws NullPointerException, InvalidParameterException
TypeDefinitionExtendibleEnumerationCreates 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.
createValueFromName in interface TypeDefinitionExtendibleEnumerationname - Name to use to create a new extendible enumeration
property value.NullPointerException - The given name is null.InvalidParameterException - The given name does not match an element
of this extendible enumeration type definition.TypeDefinitionExtendibleEnumeration.setAUIDValue(PropertyValue, AUID)public AUID getAUIDValue(PropertyValue enumerationProperty) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionExtendibleEnumerationReturns the AUID value associated with the given extendible enumeration property value according to this extendible enumeration type definition.
getAUIDValue in interface TypeDefinitionExtendibleEnumerationenumerationProperty - Extensible enumeration property value
to find the associated AUID value for.NullPointerException - The given extendible enumeration property value
is null.IllegalPropertyValueException - The given property value is not
defined by this extendible enumeration type definition.TypeDefinitionExtendibleEnumeration.getNameFromAUID(AUID),
TypeDefinitionExtendibleEnumeration.getAUIDFromName(String)public String getElementName(int index) throws IndexOutOfBoundsException
TypeDefinitionExtendibleEnumerationReturns the name of the enumeration element at the given index in the list of elements of this extendible enumeration type definition.
getElementName in interface TypeDefinitionExtendibleEnumerationindex - Index of the required name.IndexOutOfBoundsException - The given index is outside
the acceptable range for this extendible enumeration type
definition.public AUID getElementValue(int index) throws IndexOutOfBoundsException
TypeDefinitionExtendibleEnumerationReturns the AUID value for the enumeration element at the given index of in the list of elements of this extendible enumeration type definition.
getElementValue in interface TypeDefinitionExtendibleEnumerationindex - Index of the required AUID value.IndexOutOfBoundsException - The given index is outside
the acceptable range for the list of elements of this extendible enumeration type
definition.public AUID getAUIDFromName(String name) throws NullPointerException, BadParameterException
TypeDefinitionExtendibleEnumerationReturns the identifier of the enumeration element associated with the given name, as defined by this extendible enumeration type definition.
getAUIDFromName in interface TypeDefinitionExtendibleEnumerationname - Name to use to lookup the element identifier.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.TypeDefinitionExtendibleEnumeration.getNameFromAUID(AUID)public String getNameFromAUID(AUID value) throws NullPointerException, BadParameterException
TypeDefinitionExtendibleEnumerationReturns the name of the enumeration element associated with the given AUID value, as defined by this extendible enumeration type definition.
getNameFromAUID in interface TypeDefinitionExtendibleEnumerationvalue - Value to use to lookup the element name.NullPointerException - The given identifier is null.BadParameterException - The given value is not found
in the list of values of this extendible enumeration type
definition.TypeDefinitionExtendibleEnumeration.getAUIDFromName(String)public String getNameFromValue(PropertyValue enumerationProperty) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionExtendibleEnumerationReturns the name associated with the given property value, as defined by this extendible enumeration type definition.
getNameFromValue in interface TypeDefinitionExtendibleEnumerationenumerationProperty - Property value to lookup the name of.NullPointerException - The given extendible enumeration property value is
null.IllegalPropertyValueException - The given property value is not
defined by this extendible enumeration type definition.public String getSymbolFromValue(PropertyValue enumerationProperty) throws NullPointerException, IllegalPropertyValueException
public void setAUIDValue(PropertyValue enumerationProperty, AUID value) throws NullPointerException, IllegalPropertyValueException, BadParameterException
TypeDefinitionExtendibleEnumerationSets the value of the given extendible enumeration property value to the given AUID that identifies an element of this extendible enumeration type definition.
setAUIDValue in interface TypeDefinitionExtendibleEnumerationenumerationProperty - Extensible enumeration property value
to change.value - New value to set the given property value to.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.TypeDefinitionExtendibleEnumeration.getNameFromAUID(AUID),
TypeDefinitionExtendibleEnumeration.getAUIDFromName(String),
TypeDefinitionExtendibleEnumeration.createValueFromName(String)public PropertyValue createValue(Object javaValue) throws ClassCastException
TypeDefinitionImplCreate 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.
createValue in interface TypeDefinitioncreateValue in class TypeDefinitionImpljavaValue - Java object to use to create a property value of this type.ClassCastException - The given object cannot be cast to a property value with
this type definition.public TypeCategory getTypeCategory()
TypeDefinitionReturns the type category to which this type definition belongs, which
corresponds to its sub interface. For example, TypeCategory.Int
is returned for a TypeDefinitionInteger.
getTypeCategory in interface TypeDefinitiongetTypeCategory in class TypeDefinitionImplTypeCategorypublic PropertyValue createFromBytes(ByteBuffer buffer) throws NullPointerException, EndOfDataException
TypeDefinitionCreate 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.
createFromBytes in interface TypeDefinitioncreateFromBytes in class TypeDefinitionImplbuffer - Buffer to create a value from.NullPointerException - Cannot read values from a null buffer.EndOfDataException - Insufficient bytes remaining in the given buffer to create
a value of this type.TypeDefinition.writeAsBytes(PropertyValue, ByteBuffer),
TypeDefinition.lengthAsBytes(PropertyValue)public List<PropertyValue> writeAsBytes(PropertyValue value, ByteBuffer buffer) throws NullPointerException, IllegalPropertyValueException, InsufficientSpaceException
TypeDefinitionWrite 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).
writeAsBytes in interface TypeDefinitionwriteAsBytes in class TypeDefinitionImplvalue - Value to write to the given buffer.buffer - Buffer to write the value to.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.TypeDefinition.writeAsStructuredStorageBytes(PropertyValue, ByteBuffer),
TypeDefinition.createFromBytes(ByteBuffer),
TypeDefinition.lengthAsBytes(PropertyValue)public List<PropertyValue> writeAsStructuredStorageBytes(PropertyValue value, ByteBuffer buffer) throws NullPointerException, IllegalPropertyValueException, InsufficientSpaceException
TypeDefinitionWrite 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).
writeAsStructuredStorageBytes in interface TypeDefinitionwriteAsStructuredStorageBytes in class TypeDefinitionImplvalue - Value to write to the given buffer.buffer - Buffer to write the value to.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.TypeDefinition.writeAsBytes(PropertyValue, ByteBuffer),
TypeDefinition.lengthAsBytes(PropertyValue)public long lengthAsBytes(PropertyValue value) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionReturns 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.
lengthAsBytes in interface TypeDefinitionlengthAsBytes in class TypeDefinitionImplvalue - Value to find the length of when serialized to bytes.NullPointerException - Cannot compute the serialized length of a null value.IllegalPropertyValueException - The given property value is not of this type.TypeDefinition.writeAsBytes(PropertyValue, ByteBuffer),
TypeDefinition.createFromBytes(ByteBuffer)public void appendMetadictXML(Node metadict, String namespace, String prefix)
MetaDefinitionAppend an XML representation of this meta definition to the given XML node.
appendMetadictXML in interface MetaDefinitionappendMetadictXML in class MetaDefinitionImplmetadict - Meta dictionary node to append a description of this node to.CommonConstants.AAF_METADICT_NAMESPACEpublic void appendMetadictElements(Node metadict, String namespace, String prefix)
public TypeDefinitionExtendibleEnumeration clone()
MetaDefinitionCreate a cloned copy of this meta definition.
clone in interface MetaDefinitionclone in interface TypeDefinitionclone in interface TypeDefinitionExtendibleEnumerationclone in class TypeDefinitionImpl(c)2007-2016 Richard Cartwright, all rights reserved. Licensed under Apache 2 license and subject to the AMWA IPR policy.