|
Media Authoring with Java API |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object tv.amwa.maj.meta.MetaDefinition tv.amwa.maj.meta.TypeDefinition tv.amwa.maj.meta.TypeDefinitionInteger
@AAFClass(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.") public final class TypeDefinitionInteger
Implements the definition of a property type that is an integer with the specified number of bytes.
THE COMMENTS FOR THIS CLASS ARE INCOMPLETE.
Nested Class Summary | |
---|---|
static class |
TypeDefinitionInteger.BaseIntegerValue
|
static class |
TypeDefinitionInteger.ByteValue
|
static class |
TypeDefinitionInteger.IntegerValue
|
static class |
TypeDefinitionInteger.LongValue
|
static class |
TypeDefinitionInteger.ShortValue
|
static class |
TypeDefinitionInteger.XMLHandler
|
Field Summary | |
---|---|
static int |
BYTE
Number of bytes used to represent a Java byte value. |
static int |
INT
Number of bytes used to represent a Java int value. |
static TypeDefinitionInteger |
Int16
|
static TypeDefinitionInteger |
Int32
|
static TypeDefinitionInteger |
Int64
|
static TypeDefinitionInteger |
Int8
|
static int |
LONG
Number of bytes used to represent a Java long value. |
static int |
SHORT
Number of bytes used to represent a Java short value. |
static TypeDefinitionInteger |
UInt16
|
static TypeDefinitionInteger |
UInt32
|
static TypeDefinitionInteger |
UInt64
|
static TypeDefinitionInteger |
UInt8
|
Constructor Summary | |
---|---|
TypeDefinitionInteger(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. |
Method Summary | |
---|---|
void |
appendXMLChildren(Node parent)
Append child elements to the given parent node to serialize the value of an object to an XML fragment. |
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)
Check to see if 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. |
boolean |
isSigned()
Returns true if the integer type definition
defines signed integer values; otherwise false . |
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 |
setPropertiesFromInterface(TypeDefinitionInteger castFrom)
|
Methods inherited from class tv.amwa.maj.meta.TypeDefinition |
---|
setPropertiesFromInterface |
Methods inherited from class tv.amwa.maj.meta.MetaDefinition |
---|
castFromInterface, equals, getAUID, getDescription, getIdentification, getName, hashCode, setDescription, setName, setPropertiesFromInterface, toString |
Methods inherited from class java.lang.Object |
---|
getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface tv.amwa.maj.iface.MetaDefinition |
---|
getAUID, getDescription, getName, setDescription, setName |
Methods inherited from interface tv.amwa.maj.meta.MAJCommon |
---|
equals, hashCode, toString |
Field Detail |
---|
public static final TypeDefinitionInteger UInt8
public static final TypeDefinitionInteger UInt16
public static final TypeDefinitionInteger UInt32
public static final TypeDefinitionInteger UInt64
public static final TypeDefinitionInteger Int8
public static final TypeDefinitionInteger Int16
public static final TypeDefinitionInteger Int32
public static final TypeDefinitionInteger Int64
public static final int BYTE
Number of bytes used to represent a Java byte
value.
public static final int SHORT
Number of bytes used to represent a Java short
value.
public static final int INT
Number of bytes used to represent a Java int
value.
public static final int LONG
Number of bytes used to represent a Java long
value.
Constructor Detail |
---|
public TypeDefinitionInteger(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
AAFFactory.typeDefinitionForName(String)
or
AAFFactory.typeDefinitionForIdentification(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.Method Detail |
---|
public final void setPropertiesFromInterface(TypeDefinitionInteger castFrom)
MetaDefinition.setPropertiesFromInterface(tv.amwa.maj.iface.MetaDefinition)
public PropertyValue createValueFromNumber(Number value) throws NullPointerException, IllegalArgumentException, BadSizeException
TypeDefinitionInteger
Creates 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 TypeDefinitionInteger
value
- 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.
BadSizeException
TypeDefinitionInteger.setInteger(PropertyValue, Number)
public Number getInteger(PropertyValue integerProperty) throws NullPointerException, IllegalPropertyValueException
TypeDefinitionInteger
Returns 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 TypeDefinitionInteger
integerProperty
- 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.@AAFProperty(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) public byte getSize()
TypeDefinitionInteger
Returns the size of integral value of the integer type definition, measured in number of bytes.
getSize
in interface TypeDefinitionInteger
public boolean isSigned()
TypeDefinitionInteger
Returns true
if the integer type definition
defines signed integer values; otherwise false
.
isSigned
in interface TypeDefinitionInteger
@AAFProperty(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) public boolean getIsSigned()
public void setInteger(PropertyValue integerProperty, Number value) throws NullPointerException, BadSizeException, IllegalPropertyValueException, IllegalArgumentException
TypeDefinitionInteger
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. 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 TypeDefinitionInteger
integerProperty
- 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.
BadSizeException
TypeDefinitionInteger.createValueFromNumber(Number)
public TypeCategory getTypeCategory()
TypeDefinition
Returns 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 TypeDefinition
getTypeCategory
in class TypeDefinition
TypeCategory
public PropertyValue createValue(Object javaValue) throws ClassCastException
TypeDefinition
Create 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 TypeDefinition
createValue
in class TypeDefinition
javaValue
- 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)
MetaDefinition
Check to see if this definition is equal to the given object by comparing each
property. The MetaDefinition.equals(Object)
method only checks that the identies of two
definitions are equal, relying on the unqiueness ensured by identity registration.
This method is provided for debugging and validation purposes.
deepEquals
in class MetaDefinition
o
- Object to compare to this definition.
public void appendXMLChildren(Node parent)
XMLSerializable
Append child elements to the given parent node to serialize the value of an object
to an XML fragment. Methods of the XMLBuilder
class are provided to help with this
process.
appendXMLChildren
in interface XMLSerializable
appendXMLChildren
in class MetaDefinition
parent
- XML parent element to append child nodes to.
|
Media Authoring with Java API |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |