ScopeReferenceImpl (Media Authoring with Java API)
Date: 2016-02-05

tv.amwa.maj.model.impl

## Class ScopeReferenceImpl

- java.lang.Object
- - tv.amwa.maj.model.impl.InterchangeObjectImpl
  - - tv.amwa.maj.model.impl.ComponentImpl
    - - tv.amwa.maj.model.impl.SegmentImpl
      - - tv.amwa.maj.model.impl.ScopeReferenceImpl

- All Implemented Interfaces:
    Serializable, Cloneable, QComponent, QSegment, MediaEntity, MetadataObject, Component, InterchangeObject, ScopeReference, Segment

      @MediaClass(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 Track or NestedScope slot.",
                  symbol="ScopeReference")
      public class ScopeReferenceImpl
      extends SegmentImpl
      implements ScopeReference, Serializable, Cloneable

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

  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class tv.amwa.maj.model.impl.InterchangeObjectImpl

      `ObjectClassPropertyID`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ScopeReferenceImpl()` Default constructor is not public to avoid unset required fields.
    `ScopeReferenceImpl(DataDefinition dataDefinition, int relativeScope, int relativeSlot)` Creates and initializes a new scope reference object, which refers to a section in the specified track or `nested scope` slot.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ScopeReference` | `clone()` Create a cloned copy of 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 package owning the track.
    `int` | `getRelativeTrack()` Returns the relative track property of this scope reference, which specifies the number of tracks that precede the track owning the scope reference to pass to find the track referenced.
    `static int` | `initializeRelativeScope()`
    `static int` | `initializeRelativeTrack()`
    `void` | `setRelativeScope(int relativeScope)` Sets the relative scope for this scope reference.
    `void` | `setRelativeTrack(int relativeTrack)` Sets the relative track property of this scope reference.

    - ### Methods inherited from class tv.amwa.maj.model.impl.SegmentImpl

      `generateSequence, getCutPoint, getKeyOffset, getPackLayerKeyIndicator, getSegmentBlob, getTrackBlob, getTrackKeyRenderSequence, getTrackName, getTrackRenderSequence, segmentOffsetToTC, segmentTCToOffset, setCutPoint, setKeyOffset, setPackLayerKeyIndicator, setSegmentBlob, setTrackBlob, setTrackKeyRenderSequence, setTrackName, setTrackRenderSequence`

    - ### Methods inherited from class tv.amwa.maj.model.impl.ComponentImpl

      `appendComponentAttribute, appendComponentAttribute, appendComponentKLVData, appendComponentUserComment, appendComponentUserComment, clearComponentAttributes, clearComponentKLVData, clearComponentUserComments, countComponentAttributes, countComponentKLVData, countComponentUserComments, getComment, getComponentAttributes, getComponentDataDefinition, getComponentKLVData, getComponentLength, getComponentUserComments, getEditName, getJupiterClipOffset, getJupiterID, getLengthPresent, initializeComponentDataDefinition, prependComponentAttribute, prependComponentKLVData, prependComponentUserComment, removeComponentAttribute, removeComponentKLVData, removeComponentUserComment, setComponentDataDefinition, setComponentLength, setComponentLengthFromStream, setEditName, setJupiterClipOffset, setJupiterID, setLengthPresent`

    - ### Methods inherited from class tv.amwa.maj.model.impl.InterchangeObjectImpl

      `addApplicationPlugin, appendXMLChildren, clearApplicationPlugins, containsApplicationPlugin, containsApplicationPlugin, countApplicationPlugins, deepEquals, disableGenerationTracking, enableGenerationTracking, equals, getApplicationPlugins, getGeneration, getLinkedGenerationID, getLinkedGenerationIDString, getObjectClass, getPersistentID, getPersistentIndex, hashCode, isGenerationTracked, removeApplicationPlugin, removeApplicationPlugin, setLinkedGenerationID, setLinkedGenerationIDString, setObjectClass, setPersistentID, setPersistentIndex, toString`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface tv.amwa.maj.model.Segment

      `generateSequence, segmentOffsetToTC, segmentTCToOffset`

    - ### Methods inherited from interface tv.amwa.maj.model.Component

      `appendComponentAttribute, appendComponentAttribute, appendComponentKLVData, appendComponentUserComment, appendComponentUserComment, clearComponentAttributes, clearComponentKLVData, clearComponentUserComments, countComponentAttributes, countComponentKLVData, countComponentUserComments, getComponentAttributes, getComponentDataDefinition, getComponentKLVData, getComponentLength, getComponentUserComments, getLengthPresent, removeComponentAttribute, removeComponentKLVData, removeComponentUserComment, setComponentDataDefinition, setComponentLength, setLengthPresent`

    - ### Methods inherited from interface tv.amwa.maj.model.InterchangeObject

      `addApplicationPlugin, clearApplicationPlugins, containsApplicationPlugin, containsApplicationPlugin, countApplicationPlugins, deepEquals, disableGenerationTracking, enableGenerationTracking, equals, getApplicationPlugins, getGeneration, getLinkedGenerationID, getObjectClass, isGenerationTracked, removeApplicationPlugin, removeApplicationPlugin, setLinkedGenerationID, setObjectClass, toString`

    - ### Methods inherited from interface tv.amwa.maj.industry.MediaEntity

      `getPersistentID, setPersistentIndex`

- - ### Constructor Detail

    - #### ScopeReferenceImpl

          public ScopeReferenceImpl()

      Default constructor is not public to avoid unset required fields.

    - #### ScopeReferenceImpl

          public ScopeReferenceImpl(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 track 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 package 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

    - #### getRelativeScope

          @MediaProperty(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,
                         symbol="RelativeScope")
          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 package owning the track.

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

    - #### setRelativeScope

          @MediaPropertySetter(value="RelativeScope")
          public void setRelativeScope(int relativeScope)
                                                                            throws IllegalArgumentException

      Sets the relative scope for this scope reference.

      Specified by:
        `setRelativeScope` in interface `ScopeReference`
      Parameters:
        `relativeScope` - Relative scope for this scope reference.
      Throws:
        `IllegalArgumentException` - Relative scope values for scope references must be greater than of equal to `0`.

    - #### initializeRelativeScope

          public static final int initializeRelativeScope()

    - #### getRelativeTrack

          @MediaProperty(uuid1=100729091,
                         uuid2=1024,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="RelativeTrack",
                         aliases="RelativeSlot",
                         typeName="UInt32",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=3586,
                         symbol="RelativeTrack")
          public int getRelativeTrack()

      Description copied from interface: `ScopeReference`

      Returns the relative track property of this scope reference, which specifies the number of tracks that precede the track owning the scope reference to pass to find the track referenced.

      Specified by:
        `getRelativeTrack` in interface `ScopeReference`
      Returns:
        Number of tracks that precede the track containing the scope reference.

    - #### setRelativeTrack

          @MediaPropertySetter(value="RelativeTrack")
          public void setRelativeTrack(int relativeTrack)
                                                                            throws IllegalArgumentException

      Sets the relative track property of this scope reference.

      Specified by:
        `setRelativeTrack` in interface `ScopeReference`
      Parameters:
        `relativeTrack` - Relative slot of this scope reference.
      Throws:
        `IllegalArgumentException` - Relative slot values for scope references must be greater than of equal to 0.

    - #### initializeRelativeTrack

          public static final int initializeRelativeTrack()

    - #### clone

          public ScopeReference clone()

      Description copied from interface: `InterchangeObject`

      Create a cloned copy of this interchange object.

      Specified by:
        `clone` in interface `MediaEntity`
      Specified by:
        `clone` in interface `Component`
      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `ScopeReference`
      Specified by:
        `clone` in interface `Segment`
      Overrides:
        `clone` in class `SegmentImpl`
      Returns:
        Cloned copy of this interchange object.

(c)2007-2016 Richard Cartwright, all rights reserved. Licensed under Apache 2 license and subject to the AMWA IPR policy.