@MediaClass(uuid1=218169601, uuid2=522, uuid3=0, uuid4={6,14,43,52,2,6,1,1}, definedName="TypeDefinitionSet", description="The TypeDefinitionSet class defines a property type that has a collection of object references to uniquely identified objects. The order of the objects has no meaning.", symbol="TypeDefinitionSet") public final class TypeDefinitionSetImpl extends TypeDefinitionImpl implements TypeDefinitionSet, Serializable, Cloneable
Implements the definition of a property type that has a collection of object references to uniquely identified objects. The order of the objects has no meaning.
| Modifier and Type | Class and Description |
|---|---|
static class |
TypeDefinitionSetImpl.SetMethodBag |
static class |
TypeDefinitionSetImpl.SetValue |
TypeDefinitionImpl.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 |
|---|
TypeDefinitionSetImpl(AUID identification,
String typeName,
TypeDefinition elementType)
Creates and initializes the set type definition, which defines a property type
that has a collection of object references to uniquely identified objects.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addElement(PropertyValue setPropertyValue,
PropertyValue elementPropertyValue)
Adds the given element to the given set, which is represented by the given
property value of this set type definition.
|
void |
appendMetadictXML(Node metadict,
String namespace,
String prefix)
Append an XML representation of this meta definition to the given XML node.
|
TypeDefinitionSet |
clone()
Create a cloned copy of this meta definition.
|
boolean |
containsElement(PropertyValue setPropertyValue,
PropertyValue elementPropertyValue)
Returns
true if the given element is contained in
the given set; otherwise false. |
PropertyValue |
createEmptySet()
Create a property value with an empty set, ready to hold property values
of this type definitions element type.
|
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.
|
int |
getCount(PropertyValue setPropertyValue)
Returns the number of elements in the given set, or -1
if the set is
null. |
Set<PropertyValue> |
getElements(PropertyValue setPropertyValue)
Returns a copy of the set of all the elements in the given set property
value.
|
TypeDefinition |
getElementType()
Returns the type of elements referenced from the defined set.
|
TypeCategory |
getTypeCategory()
Returns the type category to which this type definition belongs, which
corresponds to its sub interface.
|
static TypeDefinition |
initializeSetElementType() |
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 |
removeElement(PropertyValue setPropertyValue,
PropertyValue elementPropertyValue)
Removes the given element from the given set, which is represented by the given
property value of this set type definition.
|
boolean |
resolveReferences(PropertyValue value,
Map<AUID,MetadataObject> referenceMap)
Resolve any unresolved object references using the given reference map.
|
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, 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, writeAsStructuredStorageBytesdeepEquals, equals, getAAFNamesInUse, getAliases, getAUID, getDescription, getName, getNamespace, getPrefix, getSymbol, hashCode, setAAFNamesInUse, setDescription, setName, setNamespace, setPrefix, setSymbol, toStringgetWeakTargetReferencepublic TypeDefinitionSetImpl(AUID identification, @AAFString String typeName, TypeDefinition elementType) throws NullPointerException
Creates and initializes the set type definition, which defines a property type that has a collection of object references to uniquely identified objects. The order of the objects has no meaning.
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 of set.typeName - Friendly name for this type definition.elementType - Type definition of each element contained in this set.NullPointerException - The identification and/or element type arguments is/are
null.public void addElement(PropertyValue setPropertyValue, PropertyValue elementPropertyValue) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionSetAdds the given element to the given set, which is represented by the given property value of this set type definition.
addElement in interface TypeDefinitionSetsetPropertyValue - Set to add the given element to.elementPropertyValue - Element to add to the given set.NullPointerException - One or both of the arguments is/are null.IllegalPropertyValueException - The type of the given property value
does not match this set type definition.public boolean containsElement(PropertyValue setPropertyValue, PropertyValue elementPropertyValue) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionSetReturns true if the given element is contained in
the given set; otherwise false. The set to test membership for is
represented by the given property value of this set type definition.
containsElement in interface TypeDefinitionSetsetPropertyValue - Set to check for the given element.elementPropertyValue - Element to check for in the given set.NullPointerException - One or both of the arguments is/are null.IllegalPropertyValueException - The type of the given property value does
not match this set type definition.public int getCount(PropertyValue setPropertyValue) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionSetReturns the number of elements in the given set, or -1
if the set is null. The set to count the members for is
represented by the given property value of this set type definition.
getCount in interface TypeDefinitionSetsetPropertyValue - Property value containing a set.NullPointerException - The given set property value is null.IllegalPropertyValueException - The type of the given property value
does not match this set type definition.@MediaProperty(uuid1=100729095, uuid2=3584, uuid3=0, uuid4={6,14,43,52,1,1,1,2}, definedName="SetElementType", aliases="ElementType", typeName="TypeDefinitionWeakReference", optional=false, uniqueIdentifier=false, pid=26, symbol="SetElementType") public TypeDefinition getElementType()
TypeDefinitionSetReturns the type of elements referenced from the defined set.
getElementType in interface TypeDefinitionSetTypeDefinitionObjectReference.getObjectType()@MediaPropertySetter(value="SetElementType") public void setElementType(TypeDefinition elementType) throws NullPointerException
NullPointerExceptionpublic static final TypeDefinition initializeSetElementType()
public Set<PropertyValue> getElements(PropertyValue setPropertyValue) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionSetReturns a copy of the set of all the elements in the given set property value.
getElements in interface TypeDefinitionSetsetPropertyValue - Property value to read and returns the elements
for.NullPointerException - The given set property value is null.IllegalPropertyValueException - The type of the given argument does not
match this set type definition.public void removeElement(PropertyValue setPropertyValue, PropertyValue elementPropertyValue) throws NullPointerException, IllegalPropertyValueException, BadTypeException, ObjectNotFoundException
TypeDefinitionSetRemoves the given element from the given set, which is represented by the given property value of this set type definition.
removeElement in interface TypeDefinitionSetsetPropertyValue - Set to remove the given element from.elementPropertyValue - Element to remove from the given set.NullPointerException - One or both of the arguments is/are null.IllegalPropertyValueException - The type of the given property value
does not match this set type definition.BadTypeException - The type of the given element for removal does
not match the element type of this set type definition.ObjectNotFoundException - The given element to remove cannot
be found in the given set property value.public PropertyValue createEmptySet()
TypeDefinitionSetCreate a property value with an empty set, ready to hold property values
of this type definitions element type. Call
TypeDefinitionSet.addElement(PropertyValue, PropertyValue) to add elements to this
set.
createEmptySet in interface TypeDefinitionSetpublic 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 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 TypeDefinitionImplmetadataObject - 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 PropertyValue createFromBytes(ByteBuffer buffer) throws 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.EndOfDataException - Insufficient bytes remaining in the given buffer to create
a value of this type.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 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 boolean resolveReferences(PropertyValue value, Map<AUID,MetadataObject> referenceMap) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionResolve any unresolved object references using the given reference map. Unresolved object references occur when a value has been read from a file but not linked to its strong or weak values. This method only effects types that are references or contain references in collections, which are:
TypeDefinitionWeakObjectReference;TypeDefinitionStrongObjectReference;TypeDefinitionVariableArray with elements of one of the object reference types;TypeDefinitionSet with elements of one of the object reference types.resolveReferences in interface TypeDefinitionresolveReferences in class TypeDefinitionImplvalue - Value to resolve references for.referenceMap - Map of local identifications to values to be used for resolution.NullPointerException - The value or reference map is/are null.IllegalPropertyValueException - The given property value is not of this type.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 TypeDefinitionSet clone()
MetaDefinitionCreate a cloned copy of this meta definition.
clone in interface MetaDefinitionclone in interface TypeDefinitionclone in interface TypeDefinitionSetclone in class TypeDefinitionImpl(c)2007-2016 Richard Cartwright, all rights reserved. Licensed under Apache 2 license and subject to the AMWA IPR policy.