@MediaClass(uuid1=218169601, uuid2=516, uuid3=0, uuid4={6,14,43,52,2,6,1,1}, definedName="TypeDefinitionInteger", description="The TypeDefinitionInteger class defines a property type that is an integer with the specified number of bytes.", symbol="TypeDefinitionInteger") public final class TypeDefinitionIntegerImpl extends SingletonTypeDefinitionImpl implements TypeDefinitionInteger, Serializable, CommonConstants, Cloneable
Implements the definition of a property type that is an integer with the specified number of bytes.
| Modifier and Type | Class and Description |
|---|---|
static class |
TypeDefinitionIntegerImpl.BaseIntegerValue |
static class |
TypeDefinitionIntegerImpl.ByteValue |
static class |
TypeDefinitionIntegerImpl.IntegerValue |
static class |
TypeDefinitionIntegerImpl.LongValue |
static class |
TypeDefinitionIntegerImpl.ShortValue |
SingletonTypeDefinitionImpl.SingletonMethodBagTypeDefinitionImpl.PropertyValueImplBYTE, INT, LONG, SHORTAAF_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 |
|---|
TypeDefinitionIntegerImpl(AUID identification,
String typeName,
byte intSize,
boolean isSigned)
Creates and initializes the integer type definition, which defines a property
type that is a signed or an unsigned integer with the specified number of bytes.
|
| 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.
|
TypeDefinitionInteger |
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 |
createValueFromNumber(Number value)
Creates a property value as defined by this integer type
definition using the given number.
|
boolean |
deepEquals(Object o)
Determines whether this definition is equal to the given object by comparing each
property.
|
Number |
getInteger(PropertyValue integerProperty)
Returns the value of the given integer property value as
a
Number. |
boolean |
getIsSigned() |
byte |
getSize()
Returns the size of integral value of the integer type definition,
measured in number of bytes.
|
TypeCategory |
getTypeCategory()
Returns the type category to which this type definition belongs, which
corresponds to its sub interface.
|
static boolean |
initializeIsSigned() |
static byte |
initializeSize() |
boolean |
isSigned()
Returns
true if the integer type definition
defines signed integer values; otherwise false. |
long |
lengthAsBytes(PropertyValue value)
Returns the number of bytes that the given value of this type is serialized as a
sequence of bytes.
|
void |
setInteger(PropertyValue integerProperty,
Number value)
Convert the given number value to one appropriate for this integer
type definition and set the value of the given integer property
value to be the converted value.
|
void |
setIsSigned(boolean isSigned) |
void |
setSize(byte intSize) |
List<PropertyValue> |
writeAsBytes(PropertyValue value,
ByteBuffer buffer)
Write the given property value of this type to the given byte stream.
|
setPropertyValuegetNamespace, getPrefix, getPropertyValue, initalizeTypeNameMap, nameToAAFName, resolveReferences, writeAsStructuredStorageBytesaafNameToName, appendXMLChildren, equals, getAAFNamesInUse, getAliases, getAUID, getComment, getDescription, getIdentification, getName, getSymbol, getWeakTargetReference, hashCode, initializeMetaDefinitionIdentification, initializeMetaDefinitionName, setAAFNamesInUse, setAliases, setDescription, setIdentification, setName, setNamespace, setPrefix, setSymbol, toStringgetPropertyValue, resolveReferences, setPropertyValue, writeAsStructuredStorageBytesequals, getAAFNamesInUse, getAliases, getAUID, getDescription, getName, getNamespace, getPrefix, getSymbol, hashCode, setAAFNamesInUse, setDescription, setName, setNamespace, setPrefix, setSymbol, toStringgetWeakTargetReferencepublic TypeDefinitionIntegerImpl(AUID identification, @AAFString String typeName, @UInt8 byte intSize, @Bool boolean isSigned) throws NullPointerException, IllegalArgumentException
Creates and initializes the integer type definition, which defines a property type that is a signed or an unsigned integer with the specified number of bytes.
The implementation of this method may only allow certain values
for the intSize. It will allow at least 1, 2, 4, and 8-byte
integers; some implementations may allow more than that.
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 use to identify this type.typeName - Friendly name for the integer type definition.intSize - Number of bytes used to represent a value.isSigned - Is the integer type signed?NullPointerException - The identification argument is null.IllegalArgumentException - The implementation does not support the given number of
bytes per integer value.public PropertyValue createValueFromNumber(Number value) throws NullPointerException, IllegalArgumentException, BadSizeException
TypeDefinitionIntegerCreates a property value as defined by this integer type definition using the given number. The given number will he cast to a value that fits with this integer type definition.
It is possible that the given Java value cannot be converted to
a value compatible with this integer type definition. If this is the
case, an IllegalArgumentException is thrown. Conversion may not be
possible for the following reasons:
float, double or
BigDecimal that includes decimal part to its value that
would require rounding as part of the conversion.TypeDefinitionInteger.getSize().
Conversion will require truncation of the value.To specifically cause truncation or rounding to take place, perform an appropriate cast before calling this method.
A BadSizeException may also be thrown if the given value is
a BigInteger or BigDecimal value as an implementation
is not required to support values greater than 8-bytes in length.
createValueFromNumber in interface TypeDefinitionIntegervalue - Value to create a new integer property value from.NullPointerException - The given number value is null.IllegalArgumentException - Due to its value, the given value cannot
be converted to a property value defined by this integer type definition.BadSizeExceptionTypeDefinitionInteger.setInteger(PropertyValue, Number)public Number getInteger(PropertyValue integerProperty) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionIntegerReturns the value of the given integer property value as
a Number. This value can then be converted
to the required type by calling
Number.intValue(), Number.byteValue() etc..
getInteger in interface TypeDefinitionIntegerintegerProperty - Property value of integer type.java.lang package, e.g. Byte,
Integer etc..NullPointerException - The given integer property value is null.IllegalPropertyValueException - The given integer property value
is not as defined by this integer type definition.@MediaProperty(uuid1=50397699, uuid2=256, uuid3=0, uuid4={6,14,43,52,1,1,1,2}, definedName="Size", typeName="UInt8", optional=false, uniqueIdentifier=false, pid=15, symbol="Size") public byte getSize()
TypeDefinitionIntegerReturns the size of integral value of the integer type definition, measured in number of bytes.
getSize in interface TypeDefinitionInteger@MediaPropertySetter(value="Size") public void setSize(byte intSize) throws IllegalArgumentException
IllegalArgumentExceptionpublic static final byte initializeSize()
public boolean isSigned()
TypeDefinitionIntegerReturns true if the integer type definition
defines signed integer values; otherwise false.
isSigned in interface TypeDefinitionInteger@MediaProperty(uuid1=50397699, uuid2=512, uuid3=0, uuid4={6,14,43,52,1,1,1,2}, definedName="IsSigned", typeName="Boolean", optional=false, uniqueIdentifier=false, pid=16, symbol="IsSigned") public boolean getIsSigned()
@MediaPropertySetter(value="IsSigned") public void setIsSigned(boolean isSigned)
public static final boolean initializeIsSigned()
public void setInteger(PropertyValue integerProperty, Number value) throws NullPointerException, BadSizeException, IllegalPropertyValueException, IllegalArgumentException
TypeDefinitionIntegerConvert the given number value to one appropriate for this integer type definition and set the value of the given integer property value to be the converted value. This method can make use of Java's autoboxing features.
It is possible that the given Java value cannot be converted to
a value compatible with the integer type definition. If this is the
case, an IllegalArgumentException is thrown. Conversion may not be
possible for the following reasons:
float, double or
BigDecimal that includes decimal part to its value that
would require rounding as part of the conversion.TypeDefinitionInteger.getSize().
Conversion will require truncation of the value.To specifically cause truncation or rounding to take place, perform an appropriate cast before calling this method.
setInteger in interface TypeDefinitionIntegerintegerProperty - Property value to set the value of.value - Value to set for the given integer property value to.NullPointerException - One or both of the integer property value and/or number
value arguments is/are null.IllegalPropertyValueException - The given property value is not compatible
with this integer type definition.IllegalArgumentException - Due to its value, the given value cannot
be converted to a property value defined by the integer type definition.BadSizeExceptionTypeDefinitionInteger.createValueFromNumber(Number)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 final boolean deepEquals(Object o)
MetaDefinitionDetermines whether this definition is equal to the given object by comparing each
property. The MetaDefinition.equals(Object) method only checks that the identities of two
definitions are equal, relying on the uniqueness ensured by identity registration.
This method is provided for debugging and validation purposes.
deepEquals in interface MetaDefinitiondeepEquals in class MetaDefinitionImplo - Object to compare to this meta definition.MetaDefinition.equals(Object)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 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 TypeDefinitionInteger clone()
MetaDefinitionCreate a cloned copy of this meta definition.
clone in interface MetaDefinitionclone in interface TypeDefinitionclone in interface TypeDefinitionIntegerclone in class TypeDefinitionImpl(c)2007-2016 Richard Cartwright, all rights reserved. Licensed under Apache 2 license and subject to the AMWA IPR policy.