@MediaClass(uuid1=218169601, uuid2=519, uuid3=0, uuid4={6,14,43,52,2,6,1,1}, definedName="TypeDefinitionEnumeration", description="The TypeDefinitionEnumeration class defines a property type that can have one of a set of integer values.", symbol="TypeDefinitionEnumeration") public final class TypeDefinitionEnumerationImpl extends SingletonTypeDefinitionImpl implements TypeDefinitionEnumeration, Serializable, Cloneable
Implements the definition of a property type that can have one of a set of integer values.
| Modifier and Type | Class and Description |
|---|---|
static class |
TypeDefinitionEnumerationImpl.EnumerationValue |
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 |
|---|
TypeDefinitionEnumerationImpl(AUID identification,
String typeName,
Class<?> enumeration,
TypeDefinition elementType)
Creates and initializes an enumeration type definition, which defines a
property type that can have one of a set of integer values.
|
| Modifier and Type | Method and Description |
|---|---|
void |
appendElementName(String elementName) |
void |
appendElementValue(long elementValue) |
void |
appendMetadictXML(Node metadict,
String namespace,
String prefix)
Append an XML representation of this meta definition to the given XML node.
|
void |
clearElementNames() |
void |
clearElementValues() |
TypeDefinitionEnumeration |
clone()
Create a cloned copy of this meta definition.
|
int |
countElements()
Returns the number of enumeration elements contained in the list of elements
of this 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 and returns an enumeration property value of this enumeration
type using the given enumeration element name.
|
PropertyValue |
createValueFromOrdinal(Number ordinal)
Creates and returns an enumeration property value of this enumeration type
using the given enumeration element value.
|
String |
getElementName(int index)
Returns the name of the enumeration element at the given index into the
list of elements of this enumeration type definition.
|
String[] |
getElementNames() |
TypeDefinition |
getElementType()
Returns the type definition of the integer
values that are found in this enumeration.
|
long |
getElementValue(int index)
Returns the integer value associated with the enumeration
element at the given index in the list of elements of this enumeration type
definition.
|
long[] |
getElementValues() |
Class<Enum<?>> |
getEnumeration()
Returns the
Enum Java type associated with
this enumeration type definition. |
long |
getIntegerValue(PropertyValue enumerationProperty)
Returns the integer value associated with the given enumeration
property value as defined by this enumeration type definition.
|
String |
getNameFromInteger(long value)
Returns the name element with the given integer
in this enumeration type definition.
|
String |
getNameFromValue(PropertyValue enumerationProperty)
Returns the name associated with the
given enumeration property value as defined by this 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 String[] |
initializeElementNames() |
static TypeDefinition |
initializeElementType() |
static long[] |
initializeElementValues() |
long |
lengthAsBytes(PropertyValue value)
Returns the number of bytes that the given value of this type is serialized as a
sequence of bytes.
|
void |
setElementType(TypeDefinition elementType) |
void |
setPropertyValue(MetadataObject metadataObject,
PropertyDefinition property,
PropertyValue value)
On the given metadata object, set the specified property to the given value.
|
List<PropertyValue> |
writeAsBytes(PropertyValue value,
ByteBuffer buffer)
Write the given property value of this type to the given byte stream.
|
getNamespace, getPrefix, getPropertyValue, initalizeTypeNameMap, nameToAAFName, resolveReferences, writeAsStructuredStorageBytesaafNameToName, 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, writeAsStructuredStorageBytesdeepEquals, equals, getAAFNamesInUse, getAliases, getAUID, getDescription, getName, getNamespace, getPrefix, getSymbol, hashCode, setAAFNamesInUse, setDescription, setName, setNamespace, setPrefix, setSymbol, toStringgetWeakTargetReferencepublic TypeDefinitionEnumerationImpl(AUID identification, @AAFString String typeName, Class<?> enumeration, TypeDefinition elementType) throws NullPointerException, IllegalArgumentException
Creates and initializes an enumeration type definition, which defines a
property type that can have one of a set of integer values. The enumeration is
initialized with its identity and its enumeration elements defined by a
java.lang.Enum class (Class<Enum>).
The interface MediaEnumerationValue must
be implemented by the Java class defining the enumeration. For any enumeration value,
this interface provides a method
value() that is
used to find the Int64 value associated with the enumeration token in
the AAF object specification and associated registries. Note, however, that Java
enumeration values are backed by Java int values that are actually
Int32 AAF values.
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 - Unique identifier to be used to identify this type.typeName - Display name for the enumeration type definition.enumeration - Java enumeration represented by this type definition.NullPointerException - One or more of the arguments is null,
or one or more of the elements of the names array is null.IllegalArgumentException - The class provided to describe this
enumeration is not a Java enumeration or does not implement the
MediaEnumerationValue interface.public int countElements()
TypeDefinitionEnumerationReturns the number of enumeration elements contained in the list of elements of this enumeration type definition.
countElements in interface TypeDefinitionEnumerationpublic PropertyValue createValueFromName(String name) throws NullPointerException, InvalidParameterException
TypeDefinitionEnumerationCreates and returns an enumeration property value of this enumeration type using the given enumeration element name.
createValueFromName in interface TypeDefinitionEnumerationname - Name of an enumeration element to create a property value
for.NullPointerException - The given element name is null.InvalidParameterException - The given name is not in the
list of element names for this enumeration type.TypeDefinitionEnumeration.createValueFromOrdinal(Number)public PropertyValue createValueFromOrdinal(Number ordinal) throws NullPointerException, InvalidParameterException
TypeDefinitionEnumerationCreates and returns an enumeration property value of this enumeration type using the given enumeration element value.
createValueFromOrdinal in interface TypeDefinitionEnumerationordinal - Element value to create a property value for.NullPointerException - The given element value is null.InvalidParameterException - The given name is not in the
list of element values for this enumeration type.TypeDefinitionEnumeration.createValueFromName(String)public String getElementName(int index) throws IndexOutOfBoundsException
TypeDefinitionEnumerationReturns the name of the enumeration element at the given index into the list of elements of this enumeration type definition.
getElementName in interface TypeDefinitionEnumerationindex - 0-based index of the name to retrieve from the list of elements
of this enumeration type definition.IndexOutOfBoundsException@MediaProperty(uuid1=100729095, uuid2=2816, uuid3=0, uuid4={6,14,43,52,1,1,1,2}, definedName="ElementType", aliases="EnumElementType", typeName="TypeDefinitionWeakReference", optional=false, uniqueIdentifier=false, pid=20, symbol="ElementType") public TypeDefinition getElementType()
TypeDefinitionEnumerationReturns the type definition of the integer
values that are found in this enumeration. For data types created using the MAJ API, this
is always an Int32.
getElementType in interface TypeDefinitionEnumerationTypeDefinitionInteger@MediaPropertySetter(value="ElementType") public void setElementType(TypeDefinition elementType) throws NullPointerException, IllegalArgumentException
elementType - NullPointerExceptionIllegalArgumentExceptionpublic static final TypeDefinition initializeElementType()
@MediaProperty(uuid1=50397699, uuid2=1024, uuid3=0, uuid4={6,14,43,52,1,1,1,2}, definedName="ElementNames", aliases="EnumElementNames", typeName="UTF16StringArray", optional=false, uniqueIdentifier=false, pid=21, symbol="ElementNames") public String[] getElementNames()
public static final String[] initializeElementNames()
@MediaPropertyClear(value="ElementNames") public void clearElementNames()
@MediaListAppend(value="ElementNames") public void appendElementName(String elementName)
@MediaProperty(uuid1=50397699, uuid2=1280, uuid3=0, uuid4={6,14,43,52,1,1,1,2}, definedName="ElementValues", aliases="EnumElementValues", typeName="Int64Array", optional=false, uniqueIdentifier=false, pid=22, symbol="ElementValues") public long[] getElementValues()
public static final long[] initializeElementValues()
@MediaPropertyClear(value="ElementValues") public void clearElementValues()
@MediaListAppend(value="ElementValues") public void appendElementValue(long elementValue)
public long getElementValue(int index)
throws IndexOutOfBoundsException
TypeDefinitionEnumerationReturns the integer value associated with the enumeration element at the given index in the list of elements of this enumeration type definition.
getElementValue in interface TypeDefinitionEnumerationindex - 0-based index of the integer value to retrieve from the list of elements of
this enumeration type definition.IndexOutOfBoundsException - The given index is outside the
acceptable range for the enumeration type definition.public Class<Enum<?>> getEnumeration()
TypeDefinitionEnumerationReturns the Enum Java type associated with
this enumeration type definition.
getEnumeration in interface TypeDefinitionEnumerationpublic long getIntegerValue(PropertyValue enumerationProperty) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionEnumerationReturns the integer value associated with the given enumeration property value as defined by this enumeration type definition.
getIntegerValue in interface TypeDefinitionEnumerationenumerationProperty - Enumeration property value
to find the associated integer for.NullPointerException - The given enumeration property is
null.IllegalPropertyValueException - The given property value is not
defined by the enumeration type definition.public String getNameFromInteger(long value) throws IllegalArgumentException
TypeDefinitionEnumerationReturns the name element with the given integer in this enumeration type definition.
getNameFromInteger in interface TypeDefinitionEnumerationvalue - Integer value associated with an enumeration
element.IllegalArgumentExceptionpublic String getNameFromValue(PropertyValue enumerationProperty) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionEnumerationReturns the name associated with the given enumeration property value as defined by this enumeration type definition.
getNameFromValue in interface TypeDefinitionEnumerationenumerationProperty - Enumeration property value to find the name of.NullPointerException - The given property value is null.IllegalPropertyValueException - The given property value is not
a value of this enumeration property type.public String getSymbolFromValue(PropertyValue enumerationProperty) throws NullPointerException, IllegalPropertyValueException
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 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 setPropertyValue(MetadataObject metadataObject, PropertyDefinition property, PropertyValue value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException
TypeDefinitionOn the given metadata object, set the specified property to the given value. The property must be of this type.
setPropertyValue in interface TypeDefinitionsetPropertyValue in class SingletonTypeDefinitionImplmetadataObject - Object to set the value on.property - Property of the object to set.value - Value of this type to set the property value to.IllegalArgumentException - The given property value is not of this type.IllegalAccessException - Insufficient privileges to set properties on the given
metadata object.InvocationTargetException - Problem encountered while calling the set method
associated with the property for the given object.TypeDefinition.getPropertyValue(MetadataObject, PropertyDefinition)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 TypeDefinitionEnumeration clone()
MetaDefinitionCreate a cloned copy of this meta definition.
clone in interface MetaDefinitionclone in interface TypeDefinitionclone in interface TypeDefinitionEnumerationclone in class TypeDefinitionImpl(c)2007-2016 Richard Cartwright, all rights reserved. Licensed under Apache 2 license and subject to the AMWA IPR policy.