Media Authoring
with Java API

tv.amwa.maj.entity
Class TaggedValue

java.lang.Object
  extended by tv.amwa.maj.entity.InterchangeObject
      extended by tv.amwa.maj.entity.TaggedValue
All Implemented Interfaces:
Serializable, Cloneable, MAJCommon, InterchangeObject, TaggedValue, XMLSerializable

@AAFClass(uuid1=218169601,
          uuid2=257,
          uuid3=16128,
          uuid4={6,14,43,52,2,6,1,1},
          definedName="TaggedValue",
          description="The TaggedValue class specifies a user-defined tag and value.")
public class TaggedValue
extends InterchangeObject
implements TaggedValue, Serializable, Cloneable, MAJCommon

Implements a user defined tag and value pair.

THE COMMENTS FOR THIS CLASS ARE INCOMPLETE.

Author:
Richard Cartwright
See Also:
Serialized Form

Nested Class Summary
static class TaggedValue.XMLHandler
           
 
Nested classes/interfaces inherited from class tv.amwa.maj.entity.InterchangeObject
InterchangeObject.InterchangeObjectXMLHandler
 
Constructor Summary
TaggedValue(String name, TypeDefinition typeDefinition, Object value)
          Creates and initializes a new tagged value object, which specifies a user-defined tag and value.
 
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.
 TaggedValue clone()
          Creates a cloned copy of this entity.
 boolean equals(Object o)
          Tests to see if the given object is equal to this interchange object.
 long getId()
           
 String getName()
          Returns the name property of this tagged value, which is a user-defined tag.
 TypeDefinition getTypeDefinition()
          Returns the type of the user-defined value.
 Object getValue()
          Returns the user-defined value of this tagged value.
 int hashCode()
          Returns a hash code value for this interchange object.
 void setId(long id)
           
 void setPropertiesFromInterface(TaggedValue castFrom)
           
 void setValue(Object value)
          Sets the user-defined value of this tagged value, which must be compatible with the value's type definition.
 
Methods inherited from class tv.amwa.maj.entity.InterchangeObject
castFromInterface, countProperties, createOptionalPropertyValue, disableGenerationTracking, enableGenerationTracking, getDefinition, getGeneration, getGenerationAUID, getProperties, getPropertyValue, isGenerationTracked, isPropertyPresent, omitOpionalProperty, registerImplementation, setPropertiesFromInterface, setPropertyValue, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface tv.amwa.maj.iface.InterchangeObject
countProperties, createOptionalPropertyValue, disableGenerationTracking, enableGenerationTracking, getDefinition, getGeneration, getGenerationAUID, getProperties, getPropertyValue, isGenerationTracked, isPropertyPresent, omitOpionalProperty, setPropertyValue
 
Methods inherited from interface tv.amwa.maj.entity.MAJCommon
toString
 

Constructor Detail

TaggedValue

public TaggedValue(@AAFString
                   String name,
                   TypeDefinition typeDefinition,
                   Object value)
            throws NullPointerException,
                   ClassCastException

Creates and initializes a new tagged value object, which specifies a user-defined tag and value.

Parameters:
name - User defined name (tag) of the tagged value object.
typeDefinition - Type definition of the following value data.
value - Value of the given type.
Throws:
NullPointerException - One or more of the arguments is null.
ClassCastException - The given value cannot be cast to a value of the given type.
Method Detail

setPropertiesFromInterface

public final void setPropertiesFromInterface(TaggedValue castFrom)
See Also:
InterchangeObject.setPropertiesFromInterface(tv.amwa.maj.iface.InterchangeObject)

getTypeDefinition

public TypeDefinition getTypeDefinition()
Description copied from interface: TaggedValue

Returns the type of the user-defined value.

Specified by:
getTypeDefinition in interface TaggedValue
Returns:
Type definition for this tagged value.
See Also:
TaggedValue.getValue(), TypeDefinitionIndirect, TypeDefinitionIndirect.getActualValue(PropertyValue), PropertyValue.getType()

getName

@AAFProperty(uuid1=50462978,
             uuid2=2305,
             uuid3=0,
             uuid4={6,14,43,52,1,1,1,2},
             definedName="Name",
             typeName="String",
             optional=false,
             uniqueIdentifier=false,
             pid=20481)
public String getName()
Description copied from interface: TaggedValue

Returns the name property of this tagged value, which is a user-defined tag.

Specified by:
getName in interface TaggedValue
Returns:
Name property of this tagged value.

getValue

@AAFProperty(uuid1=50462978,
             uuid2=2561,
             uuid3=0,
             uuid4={6,14,43,52,1,1,1,2},
             definedName="Value",
             typeName="Indirect",
             optional=false,
             uniqueIdentifier=false,
             pid=20483)
public Object getValue()
Description copied from interface: TaggedValue

Returns the user-defined value of this tagged value.

Specified by:
getValue in interface TaggedValue
Returns:
Value of this tagged value.
See Also:
TaggedValue.getTypeDefinition(), TypeDefinitionIndirect, TypeDefinitionIndirect.getActualValue(PropertyValue), PropertyValue.getValue()

setValue

public void setValue(Object value)
              throws NullPointerException,
                     ClassCastException
Description copied from interface: TaggedValue

Sets the user-defined value of this tagged value, which must be compatible with the value's type definition.

Specified by:
setValue in interface TaggedValue
Parameters:
value - Data value of this tagged value.
Throws:
NullPointerException - The given user-defined value is null.
ClassCastException - The given value cannot be cast to a value of the type definition for this tagged value.
See Also:
TypeDefinitionIndirect, TypeDefinition.createValue(Object), TypeDefinitionIndirect

getId

public long getId()

setId

public void setId(long id)

equals

public boolean equals(Object o)
Description copied from interface: MAJCommon

Tests to see if the given object is equal to this interchange object. To be equal, the given value must be not null, share the same interface to its value and each of the properties of the value must each be equal.

Specified by:
equals in interface MAJCommon
Overrides:
equals in class Object
Parameters:
o - Object to test for equality with.
Returns:
Is the given object equals to this value?
See Also:
Object.equals(Object)

hashCode

public int hashCode()
Description copied from interface: MAJCommon

Returns a hash code value for this interchange object.

Specified by:
hashCode in interface MAJCommon
Overrides:
hashCode in class Object
Returns:
Hash code value for this interchange object.
See Also:
Object.hashCode()

clone

public TaggedValue clone()
Description copied from interface: MAJCommon

Creates a cloned copy of this entity. The clone will be initialized to have the same value as this value but exists independently from then on. Changes to this value will not effect the clone and changes to the clone will not effect this. MAJ API clones are true deep clones with no shared references to areas of memory within the original.

This method does not throw a CloneNotSupportedException as all entity values must implement the Cloneable interface. If a cloning error does occur, a null value will be returned but this is very unlikely to happen.

Specified by:
clone in interface MAJCommon
Overrides:
clone in class Object
Returns:
Independent clone of this value, which is a deep copy.
See Also:
Object.clone()

appendXMLChildren

public void appendXMLChildren(Node parent)
Description copied from interface: 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.

Specified by:
appendXMLChildren in interface XMLSerializable
Overrides:
appendXMLChildren in class InterchangeObject
Parameters:
parent - XML parent element to append child nodes to.

Media Authoring
with Java API

(c) 2007-2008 Richard Cartwright, all rights reserved. Subject to the terms of the AAF SDK Public Source License.