@MediaClass(uuid1=218169601, uuid2=520, uuid3=0, uuid4={6,14,43,52,2,6,1,1}, definedName="TypeDefinitionFixedArray", description="The TypeDefinitionFixedArray class defines a property type that has a fixed number of values of the underlying type. The order of the values is meaningful.", symbol="TypeDefinitionFixedArray") public final class TypeDefinitionFixedArrayImpl extends SingletonTypeDefinitionImpl implements TypeDefinitionFixedArray, Serializable, Cloneable
Implements the definition of a property type that has a fixed number of values of the underlying type. The order of the values is meaningful.
| Modifier and Type | Class and Description |
|---|---|
static class |
TypeDefinitionFixedArrayImpl.FixedArrayValue |
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 |
|---|
TypeDefinitionFixedArrayImpl(AUID identification,
String typeName,
TypeDefinition elementType,
int numberElements)
Creates and initializes a new fixed array type definition, which defines a property
type that has a fixed number of values of the underlying type.
|
| Modifier and Type | Method and Description |
|---|---|
void |
appendMetadictXML(Node metadict,
String namespace,
String prefix)
Append an XML representation of this meta definition to the given XML node.
|
TypeDefinitionFixedArray |
clone()
Create a cloned copy of this meta 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 |
createValueFromArray(Object[] initData)
Creates and returns a new fixed array property value from
the given Java array.
|
PropertyValue |
createValueFromValues(PropertyValue[] elementValues)
Creates and returns a fixed array property value from the
given array of property values.
|
Object[] |
getArray(PropertyValue arrayProperty)
Returns a Java array created from the elements of the
given fixed array property value.
|
int |
getCount()
Returns the number of elements of an array defined by
this fixed array type definition.
|
List<PropertyValue> |
getElements(PropertyValue arrayProperty)
Returns a list over all the property values of the
given fixed array property value.
|
PropertyValue |
getElementValue(PropertyValue arrayProperty,
int index)
Returns the member property value at the given index through the given fixed array
property value.
|
TypeDefinition |
getType()
Returns the underlying type of that defines the type of each element of the array
defined by this fixed array type definition.
|
TypeCategory |
getTypeCategory()
Returns the type category to which this type definition belongs, which
corresponds to its sub interface.
|
static int |
initializeElementCount() |
static TypeDefinition |
initializeFixedArrayElementType() |
long |
lengthAsBytes(PropertyValue value)
Returns the number of bytes that the given value of this type is serialized as a
sequence of bytes.
|
String |
nameToAAFName(String name) |
void |
setArray(PropertyValue arrayProperty,
Object[] data)
Sets the value of the given fixed array property value using
the given Java array, setting the elements of the fixed array
to be values given by the elements of the Java array.
|
void |
setElementCount(int elementCount)
Set the element count of this fixed array type definition.
|
void |
setElementType(TypeDefinition elementType)
Sets the element type for all elements of the array defined by this fixed array
type definition.
|
void |
setElementValue(PropertyValue arrayProperty,
int index,
PropertyValue memberProperty)
Sets the value of a member of the given fixed array property
value at the given index using the given value.
|
List<PropertyValue> |
writeAsBytes(PropertyValue value,
ByteBuffer buffer)
Write the given property value of this type to the given byte stream.
|
setPropertyValuegetNamespace, getPrefix, getPropertyValue, initalizeTypeNameMap, 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, setPropertyValue, writeAsStructuredStorageBytesdeepEquals, equals, getAAFNamesInUse, getAliases, getAUID, getDescription, getName, getNamespace, getPrefix, getSymbol, hashCode, setAAFNamesInUse, setDescription, setName, setNamespace, setPrefix, setSymbol, toStringgetWeakTargetReferencepublic TypeDefinitionFixedArrayImpl(AUID identification, @AAFString String typeName, TypeDefinition elementType, @UInt32 int numberElements) throws NullPointerException, IllegalArgumentException
Creates and initializes a new fixed array type definition, which defines a property type that has a fixed number of values of the underlying type. The order of the values is meaningful.
The following types are allowed as the underlying type for fixed array type definitions:
TypeDefinitionIntegerTypeDefinitionRecordTypeDefinitionEnumerationTypeDefinitionExtendibleEnumerationTypeDefinitionFixedArrayIf the element type is not one of the above kinds, an IllegalArgumentException is
thrown.
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.elementType - Type of each element to be contained in an array defined
by the fixed array type definition.numberElements - Number of elements of this kind of array.typeName - Friendly name of the fixed array type definition.NullPointerException - One or more of the arguments is null.IllegalArgumentException - The given underlying type is not compatible
with the types supported by fixed size arrays.public PropertyValue createValueFromValues(PropertyValue[] elementValues) throws NullPointerException, BadParameterException, BadTypeException
TypeDefinitionFixedArrayCreates and returns a fixed array property value from the given array of property values.
createValueFromValues in interface TypeDefinitionFixedArrayelementValues - Property value array to use to initialize the new
fixed array property value.NullPointerException - The given array of element values is null or
one or more of its elements is null.BadParameterException - The given array of property values is
of a different size to that required by the fixed array type definition,
as returned by TypeDefinitionFixedArray.getCount().BadTypeException - One or more of the elements of the given
property value array cannot be converted to values of the underlying type
of the fixed type array definition, as returned by TypeDefinitionFixedArray.getType().@MediaProperty(uuid1=50397699, uuid2=768, uuid3=0, uuid4={6,14,43,52,1,1,1,2}, definedName="ElementCount", typeName="UInt32", optional=false, uniqueIdentifier=false, pid=24, symbol="ElementCount") public int getCount()
TypeDefinitionFixedArrayReturns the number of elements of an array defined by this fixed array type definition.
getCount in interface TypeDefinitionFixedArray@MediaPropertySetter(value="ElementCount") public void setElementCount(int elementCount) throws IllegalArgumentException
Set the element count of this fixed array type definition.
elementCount - Element count of this fixed array type definition.IllegalArgumentException - Cannot set the element count of a fixed
array type definition to a negative value.public static final int initializeElementCount()
public PropertyValue getElementValue(PropertyValue arrayProperty, int index) throws NullPointerException, IndexOutOfBoundsException, IllegalPropertyValueException
TypeDefinitionFixedArrayReturns the member property value at the given index through the given fixed array property value.
getElementValue in interface TypeDefinitionFixedArrayarrayProperty - Fixed array property value to retrieve a
a member property value from.index - 0-based index into the given fixed array property value
to use to locate the required member property value.NullPointerException - The given fixed array property value is null.IndexOutOfBoundsException - The given index is outside
the acceptable range for an array defined by this fixed array
type definition.IllegalPropertyValueException - The fixed array property value is not
defined by this fixed array type definition.public List<PropertyValue> getElements(PropertyValue arrayProperty) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionFixedArrayReturns a list over all the property values of the given fixed array property value.
getElements in interface TypeDefinitionFixedArrayarrayProperty - Fixed array property value to create
a list from.NullPointerException - The given fixed array property
value is null.IllegalPropertyValueException - The given property value is
not defined by this fixed array type definition.TypeDefinitionFixedArray.getArray(PropertyValue),
TypeDefinitionFixedArray.getElementValue(PropertyValue, int)public Object[] getArray(PropertyValue arrayProperty) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionFixedArrayReturns a Java array created from the elements of the
given fixed array property value. The array is created with
a call to PropertyValue.getValue() on each of the
members of the given array.
getArray in interface TypeDefinitionFixedArrayarrayProperty - Fixed array property value to create a
fixed array property value from.NullPointerException - Argument is null.IllegalPropertyValueException - The fixed array property value is not
defined by the fixed array type definition.TypeDefinitionFixedArray.createValueFromArray(Object[]),
TypeDefinitionFixedArray.getElements(PropertyValue)@MediaProperty(uuid1=100729095, uuid2=3072, uuid3=0, uuid4={6,14,43,52,1,1,1,2}, definedName="FixedArrayElementType", aliases="ElementType", typeName="TypeDefinitionWeakReference", optional=false, uniqueIdentifier=false, pid=23, symbol="FixedArrayElementType") public TypeDefinition getType()
TypeDefinitionFixedArrayReturns the underlying type of that defines the type of each element of the array defined by this fixed array type definition.
getType in interface TypeDefinitionFixedArray@MediaPropertySetter(value="FixedArrayElementType") public void setElementType(TypeDefinition elementType) throws NullPointerException, IllegalArgumentException
Sets the element type for all elements of the array defined by this fixed array type definition.
The element type of a fixed array type definition must be one of the following kinds:
TypeDefinitionIntegerTypeDefinitionRecordTypeDefinitionEnumerationTypeDefinitionExtendibleEnumerationTypeDefinitionFixedArrayIf the element type is not one of the above kinds, an IllegalArgumentException is
thrown.
elementType - Element type for this fixed array type definition.NullPointerException - Argument is null.IllegalArgumentException - The given element type is not acceptable for a fixed array
type definition.public static final TypeDefinition initializeFixedArrayElementType()
public void setElementValue(PropertyValue arrayProperty, int index, PropertyValue memberProperty) throws NullPointerException, IllegalPropertyValueException, IndexOutOfBoundsException, BadTypeException
TypeDefinitionFixedArraySets the value of a member of the given fixed array property value at the given index using the given value.
setElementValue in interface TypeDefinitionFixedArrayarrayProperty - Fixed array property value for which a member
is to be set.index - 0-based index of the member value to change.memberProperty - Replacement value for the member of the given
array at the given index.NullPointerException - One or both of the array and/or member property
values is/are null.IllegalPropertyValueException - The fixed array property value is not
defined by this fixed array type definition.IndexOutOfBoundsException - The index is outside the acceptable
range for arrays of this fixed array type definition.BadTypeException - The given member property definition is
not compatible with the underlying type of the fixed array type
definition, as returned by TypeDefinitionFixedArray.getType().TypeDefinitionFixedArray.getElements(PropertyValue)public void setArray(PropertyValue arrayProperty, Object[] data) throws NullPointerException, IllegalPropertyValueException, BadParameterException, BadTypeException, ClassCastException
TypeDefinitionFixedArraySets the value of the given fixed array property value using
the given Java array, setting the elements of the fixed array
to be values given by the elements of the Java array. Both arrays
must the same length and it must be possible to convert the
values of the Java array to the underlying type of the fixed
array type definition, as returned by TypeDefinitionFixedArray.getType() and using
TypeDefinition.createValue(Object).
setArray in interface TypeDefinitionFixedArrayarrayProperty - Fixed array property value to have the value
of all of its elements set.data - Java array containing elements to be used to set the
values of the elements of the given fixed array property value.NullPointerException - One or more of the arguments is null,
or one or more of the elements of the given Java array is null.IllegalPropertyValueException - The fixed array property value is not
defined by the fixed array type definition.BadParameterException - The given Java array is a different
size to that defined by the fixed array type definition, as returned
by TypeDefinitionFixedArray.getCount().BadTypeException - The Java array contains one or more
objects that cannot be converted to elements of the underlying type
of this fixed array type definition, as returned by TypeDefinitionFixedArray.getType().ClassCastExceptionTypeDefinitionFixedArray.createValueFromArray(Object[]),
TypeDefinition.createValue(Object)public PropertyValue createValueFromArray(Object[] initData) throws NullPointerException, BadParameterException, BadTypeException
TypeDefinitionFixedArrayCreates and returns a new fixed array property value from
the given Java array. The elements of the Java array are converted
to property values of the underlying type of the fixed array
type definition, as returned by TypeDefinitionFixedArray.getType() and using a
call to TypeDefinition.createValue(Object).
createValueFromArray in interface TypeDefinitionFixedArrayinitData - Java array of data to use to initialize the new
fixed array property value.NullPointerException - The argument is null, or one or more of
the elements of the given Java array are null.BadParameterException - The given Java array is of a different
size to that required by the fixed array type definition, as returned
by TypeDefinitionFixedArray.getCount().BadTypeException - One or more of the elements of the given
Java array cannot be converted to values of the underlying type of the
fixed type array definition, as returned by TypeDefinitionFixedArray.getType().TypeDefinition.createValue(Object),
TypeDefinitionFixedArray.getArray(PropertyValue),
TypeDefinitionFixedArray.setArray(PropertyValue, Object[])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 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 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 String nameToAAFName(String name)
nameToAAFName in class TypeDefinitionImplpublic 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 TypeDefinitionFixedArray clone()
MetaDefinitionCreate a cloned copy of this meta definition.
clone in interface MetaDefinitionclone in interface TypeDefinitionclone in interface TypeDefinitionFixedArrayclone in class TypeDefinitionImpl(c)2007-2016 Richard Cartwright, all rights reserved. Licensed under Apache 2 license and subject to the AMWA IPR policy.