Media Authoring
with Java API

tv.amwa.maj.entity
Class ScopeReference

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.ScopeReference
All Implemented Interfaces:
Serializable, Cloneable, MAJCommon, Component, InterchangeObject, ScopeReference, Segment, XMLSerializable

@AAFClass(uuid1=218169601,
          uuid2=257,
          uuid3=3328,
          uuid4={6,14,43,52,2,6,1,1},
          definedName="ScopeReference",
          description="The ScopeReference class refers to a section in the specified MobSlot or NestedScope slot.")
public class ScopeReference
extends Segment
implements ScopeReference, Serializable, Cloneable, MAJCommon

Implements a reference to a section in the specified mob slot or nested scope slot. Scope references are specified in terms of a relative slot offset, and the number of scopes to skip outward.

THE COMMENTS FOR THIS CLASS ARE INCOMPLETE.

Author:
Richard Cartwright
See Also:
Serialized Form

Nested Class Summary
static class ScopeReference.XMLHandler
           
 
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
 
Field Summary
static String SCOPEREFRENCE_TAG
           
 
Fields inherited from class tv.amwa.maj.entity.Component
COMPONENT_ITEM
 
Constructor Summary
ScopeReference(DataDefinition dataDefinition, int relativeScope, int relativeSlot)
          Creates and initializes a new scope reference object, which refers to a section in the specified mob slot or nested scope slot.
 
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.
 ScopeReference 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.
 int getRelativeScope()
          Returns the relative scope property of this scope reference, which specifies the number of nested scopes to pass to find the nested scope or mob owning the slot.
 int getRelativeSlot()
          Returns the relative slot property of this scope reference, which specifies the number of slots that precede the slot owning the Scope Reference to pass to find the slot referenced.
 int hashCode()
          Returns a hash code value for this interchange object.
 void setPropertiesFromInterface(ScopeReference castFrom)
           
 
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, toString, wait, wait, wait
 
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

SCOPEREFRENCE_TAG

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

ScopeReference

public ScopeReference(DataDefinition dataDefinition,
                      @UInt32
                      int relativeScope,
                      @UInt32
                      int relativeSlot)
               throws NullPointerException,
                      IllegalArgumentException

Creates and initializes a new scope reference object, which refers to a section in the specified mob slot or nested scope slot.

Parameters:
dataDefinition - Data definition for the referenced slot and for this component.
relativeScope - Number of nested scopes to pass to find the nested scope slot or mob owning the slot.
relativeSlot - Number of slots to look backwards from the slot containing the scope reference to pass to find the slot referenced.
Throws:
NullPointerException - Data definition is null.
IllegalArgumentException - The relative scope and or relative slot arguments are negative.
Method Detail

setPropertiesFromInterface

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

getRelativeScope

@AAFProperty(uuid1=100729091,
             uuid2=768,
             uuid3=0,
             uuid4={6,14,43,52,1,1,1,2},
             definedName="RelativeScope",
             typeName="UInt32",
             optional=false,
             uniqueIdentifier=false,
             pid=3585)
public int getRelativeScope()
Description copied from interface: ScopeReference

Returns the relative scope property of this scope reference, which specifies the number of nested scopes to pass to find the nested scope or mob owning the slot.

Specified by:
getRelativeScope in interface ScopeReference
Returns:
Number of nested scopes to pass to find the nested scope slot.

getRelativeSlot

@AAFProperty(uuid1=100729091,
             uuid2=1024,
             uuid3=0,
             uuid4={6,14,43,52,1,1,1,2},
             definedName="RelativeSlot",
             typeName="UInt32",
             optional=false,
             uniqueIdentifier=false,
             pid=3586)
public int getRelativeSlot()
Description copied from interface: ScopeReference

Returns the relative slot property of this scope reference, which specifies the number of slots that precede the slot owning the Scope Reference to pass to find the slot referenced.

Specified by:
getRelativeSlot in interface ScopeReference
Returns:
Number of slots that precede the slot containing the scope reference.

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

clone

public ScopeReference 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 Segment
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 Component
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.