Media Authoring
with Java API

tv.amwa.maj.entity
Class DescriptiveMarker

java.lang.Object
  extended by tv.amwa.maj.entity.InterchangeObject
      extended by tv.amwa.maj.entity.Component
          extended by tv.amwa.maj.entity.Segment
              extended by tv.amwa.maj.entity.Event
                  extended by tv.amwa.maj.entity.CommentMarker
                      extended by tv.amwa.maj.entity.DescriptiveMarker
All Implemented Interfaces:
Serializable, Cloneable, MAJCommon, CommentMarker, Component, DescriptiveMarker, Event, InterchangeObject, Segment, XMLSerializable

@AAFClass(uuid1=218169601,
          uuid2=257,
          uuid3=16640,
          uuid4={6,14,43,52,2,6,1,1},
          definedName="DescriptiveMarker",
          description="The DescriptiveMarker class specifies descriptive metadata that is associated with a point in time.")
public class DescriptiveMarker
extends CommentMarker
implements DescriptiveMarker, Serializable, Cloneable, MAJCommon

Implements descriptive metadata associated with a point in time and the mob slots that the description refers to. A descriptive marker may contain a descriptive framework that specifies the metadata.

THE COMMENTS FOR THIS CLASS ARE INCOMPLETE.

Author:
Richard Cartwright
See Also:
Serialized Form

Nested Class Summary
static class DescriptiveMarker.DescribedSlotsXMLHandler
           
static class DescriptiveMarker.DescriptionXMLHandler
           
static class DescriptiveMarker.XMLHandler
           
 
Nested classes/interfaces inherited from class tv.amwa.maj.entity.Event
Event.EventXMLHandler
 
Nested classes/interfaces inherited from class tv.amwa.maj.entity.Segment
Segment.SegmentXMLHandler
 
Nested classes/interfaces inherited from class tv.amwa.maj.entity.Component
Component.ComponentAttributesXMLHandler, Component.ComponentUserCommentsXMLHandler, Component.ComponentXMLHandler, Component.KLVDataXMLHandler
 
Nested classes/interfaces inherited from class tv.amwa.maj.entity.InterchangeObject
InterchangeObject.InterchangeObjectXMLHandler
 
Nested classes/interfaces inherited from interface tv.amwa.maj.iface.DescriptiveMarker
DescriptiveMarker.AllSlotsDescribed
 
Field Summary
static String DESCRIPTIVEMARKER_TAG
           
 
Fields inherited from class tv.amwa.maj.entity.CommentMarker
COMMENTMARKER_TAG
 
Fields inherited from class tv.amwa.maj.entity.Event
EVENT_ITEM
 
Fields inherited from class tv.amwa.maj.entity.Component
COMPONENT_ITEM
 
Fields inherited from interface tv.amwa.maj.iface.DescriptiveMarker
AllSlotsDescribed, NoSlotsDescribed
 
Constructor Summary
DescriptiveMarker()
          Creates and initializes a descriptive marker.
 
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.
 DescriptiveMarker 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.
 Set<Integer> getDescribedSlotIDs()
          Returns the set of described slot ids that are referenced by this descriptive marker.
 int getDescribedSlotIDsSize()
          Returns the number of slot ids referred to by this descriptive marker.
 DescriptiveFramework getDescriptiveFramework()
          Returns the descriptive framework that specifies the metadata for this descriptive marker.
 int hashCode()
          Returns a hash code value for this interchange object.
 void setDescribedSlotIDs(Set<Integer> describedSlotIDs)
          Specifies the slot ids in the mob to which this descriptive marker refers.
 void setDescriptiveFramework(DescriptiveFramework descriptiveFramework)
          Sets the descriptive framework that specifies the metadata for this descriptive marker.
 void setPropertiesFromInterface(DescriptiveMarker castFrom)
           
 
Methods inherited from class tv.amwa.maj.entity.CommentMarker
getAnnotation, setAnnotation, setPropertiesFromInterface
 
Methods inherited from class tv.amwa.maj.entity.Event
getComment, getPosition, getPositionPresent, setComment, setPosition, setPositionPresent, setPropertiesFromInterface
 
Methods inherited from class tv.amwa.maj.entity.Segment
segmentOffsetToTC, segmentTCToOffset, setPropertiesFromInterface
 
Methods inherited from class tv.amwa.maj.entity.Component
appendAttribute, appendAttribute, appendComment, appendComment, appendKLVData, countAttributes, countComments, countKLVData, getAttributes, getComments, getDataDefinition, getKLVData, getLength, getLengthPresent, removeAttribute, removeComment, removeKLVData, setDataDefinition, setLength, setLengthPresent, setPropertiesFromInterface
 
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.CommentMarker
getAnnotation, setAnnotation
 
Methods inherited from interface tv.amwa.maj.iface.Event
getComment, getPosition, setComment, setPosition
 
Methods inherited from interface tv.amwa.maj.iface.Segment
segmentOffsetToTC, segmentTCToOffset
 
Methods inherited from interface tv.amwa.maj.iface.Component
appendAttribute, appendAttribute, appendComment, appendComment, appendKLVData, countAttributes, countComments, countKLVData, getAttributes, getComments, getDataDefinition, getKLVData, getLength, removeAttribute, removeComment, removeKLVData, setDataDefinition, setLength
 
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
 

Field Detail

DESCRIPTIVEMARKER_TAG

public static final String DESCRIPTIVEMARKER_TAG
See Also:
Constant Field Values
Constructor Detail

DescriptiveMarker

public DescriptiveMarker()

Creates and initializes a descriptive marker. If this event is in an event mob slot, the position must also be set using Event.setPosition(long).

Method Detail

setPropertiesFromInterface

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

getDescribedSlotIDs

@AAFProperty(uuid1=17236229,
             uuid2=0,
             uuid3=0,
             uuid4={6,14,43,52,1,1,1,4},
             definedName="DescribedSlots",
             typeName="UInt32Set",
             optional=true,
             uniqueIdentifier=false,
             pid=24834)
public Set<Integer> getDescribedSlotIDs()
                                 throws PropertyNotPresentException
Description copied from interface: DescriptiveMarker

Returns the set of described slot ids that are referenced by this descriptive marker. If the value returned is equal to DescriptiveMarker.AllSlotsDescribed, this descriptive marker describes all slots in the associated mob.

Specified by:
getDescribedSlotIDs in interface DescriptiveMarker
Returns:
Slot ids in this mob that this descriptive marker describes.
Throws:
PropertyNotPresentException - The optional described slots property is not present in this descriptive marker.

setDescribedSlotIDs

public void setDescribedSlotIDs(Set<Integer> describedSlotIDs)
                         throws IllegalArgumentException
Description copied from interface: DescriptiveMarker

Specifies the slot ids in the mob to which this descriptive marker refers. Set this optional property to null to omit it, which indicates that all slots are described. Set to DescriptiveMarker.NoSlotsDescribed to indicate that the marker does not refer to any slots.

Specified by:
setDescribedSlotIDs in interface DescriptiveMarker
Parameters:
describedSlotIDs - Slot id for the slots in the associated mob that this descriptive marker describes.
Throws:
IllegalArgumentException - One or more of the slot ids in the given set is negative.
See Also:
DescriptiveMarker.AllSlotsDescribed, MobSlot

getDescribedSlotIDsSize

public int getDescribedSlotIDsSize()
                            throws PropertyNotPresentException
Description copied from interface: DescriptiveMarker

Returns the number of slot ids referred to by this descriptive marker.Note that the default value is DescriptiveMarker.AllSlotsDescribed, which has Integer.MAX_VALUE slot ids. Care should be taken not to end up iterating over all of these entries!

Specified by:
getDescribedSlotIDsSize in interface DescriptiveMarker
Returns:
Number of slot ids stored.
Throws:
PropertyNotPresentException - The optional described slots property is not present in this descriptive marker.

getDescriptiveFramework

@AAFProperty(uuid1=100729092,
             uuid2=524,
             uuid3=0,
             uuid4={6,14,43,52,1,1,1,5},
             definedName="Description",
             typeName="StrongReference to DescriptiveFramework",
             optional=true,
             uniqueIdentifier=false,
             pid=24833)
public DescriptiveFramework getDescriptiveFramework()
                                             throws PropertyNotPresentException
Description copied from interface: DescriptiveMarker

Returns the descriptive framework that specifies the metadata for this descriptive marker.

Specified by:
getDescriptiveFramework in interface DescriptiveMarker
Returns:
The associated descriptive framework.
Throws:
PropertyNotPresentException - The optional descriptive framework property is not present in this descriptive marker.

setDescriptiveFramework

public void setDescriptiveFramework(DescriptiveFramework descriptiveFramework)
Description copied from interface: DescriptiveMarker

Sets the descriptive framework that specifies the metadata for this descriptive marker. Set this optional property to null to omit it.

Specified by:
setDescriptiveFramework in interface DescriptiveMarker
Parameters:
descriptiveFramework - Specifies the descriptive framework.

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 CommentMarker
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 CommentMarker
Returns:
Hash code value for this interchange object.
See Also:
Object.hashCode()

clone

public DescriptiveMarker 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 CommentMarker
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 CommentMarker
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.