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

tv.amwa.maj.model

## Interface ScopeReference

- All Superinterfaces:
    Component, InterchangeObject, MediaEntity, MetadataObject, Segment
  All Known Implementing Classes:
    ScopeReferenceImpl

      public interface ScopeReference
      extends Segment

  Specifies 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:
    `NestedScope`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `ScopeReference` | `clone()` Create a cloned copy of this scope reference.
    `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.
    `void` | `setRelativeScope(int relativeScope)` Sets 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.
    `void` | `setRelativeTrack(int relativeTrack)` Sets 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.

    - ### 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`

- - ### Method Detail

    - #### getRelativeScope

          @UInt32
          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.

      Returns:
        Number of nested scopes to pass to find the nested scope track.

    - #### setRelativeScope

          void setRelativeScope(@UInt32
                                int relativeScope)
                         throws IllegalArgumentException

      Sets 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.

      Parameters:
        `relativeScope` - Number of nested scopes to pass to find the nested scope track.
      Throws:
        `IllegalArgumentException` - A relative scope cannot be a negative value.

    - #### getRelativeTrack

          @UInt32
          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.

      Returns:
        Number of tracks that precede the track containing the scope reference.

    - #### setRelativeTrack

          void setRelativeTrack(@UInt32
                                int relativeTrack)
                         throws IllegalArgumentException

      Sets 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.

      Parameters:
        `relativeTrack` - Number of tracks that precede the track containing the scope reference.
      Throws:
        `IllegalArgumentException` - A relative track cannot be a negative value.

    - #### clone

          ScopeReference clone()

      Create a cloned copy of this scope reference.

      Specified by:
        `clone` in interface `Component`
      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `MediaEntity`
      Specified by:
        `clone` in interface `Segment`
      Returns:
        Cloned copy of this scope reference.

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