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

tv.amwa.maj.model.impl

## Class TrackImpl

- java.lang.Object
- - tv.amwa.maj.model.impl.InterchangeObjectImpl
  - - tv.amwa.maj.model.impl.TrackImpl

- All Implemented Interfaces:
    Serializable, Cloneable, MediaEntity, MetadataObject, XMLSerializable, InterchangeObject, Track
  Direct Known Subclasses:
    EventTrackImpl, StaticTrackImpl, TimelineTrackImpl

      @MediaClass(uuid1=218169601,
                  uuid2=257,
                  uuid3=14336,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="Track",
                  aliases="MobSlot",
                  description="The Track class represents an individual track in a Package.",
                  symbol="Track",
                  isConcrete=false)
      public class TrackImpl
      extends InterchangeObjectImpl
      implements Track, Serializable, XMLSerializable, Cloneable

  Implements the representation of a single track in a package. A track describes the relationship between essence and time. In a material package, tracks describe the desired relationship between stored essence and the output timeline.

  See Also:
    `TypeDefinitions.TrackStrongReference`, `TypeDefinitions.TrackStrongReferenceVector`, Serialized Form

- - ### Field Summary

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

      `ObjectClassPropertyID`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TrackImpl()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Track` | `clone()` Create a cloned copy of this interchange object.
    `String` | `getComment()` Include a comment when serializing a value to XML.
    `DataDefinition` | `getDataDefinition()` Returns the data definition describing the type of essence represented by the value of this track.
    `int` | `getEssenceTrackNumber()` Returns the physical output channel associated with this track.
    `int` | `getTrackID()` Returns the track id of this track, which specifies an integer that is used to reference this track.
    `String` | `getTrackName()` Returns the name of this track.
    `Segment` | `getTrackSegment()` Returns the segment of this track, which is the value of the track.
    `static int` | `initializeTrackID()`
    `Segment` | `initializeTrackSegment()`
    `void` | `setEssenceTrackNumber(Integer essenceTrackNumber)` Sets the physical output channel associated with this track.
    `void` | `setTrackID(int trackID)` This method will set the track id of this track, which specifies an integer that is used to reference this track.
    `void` | `setTrackName(String trackName)` Sets the name of this track.
    `void` | `setTrackSegment(Segment trackSegment)` Sets the segment for this track, which is the value of the track.

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

    - ### Methods inherited from interface tv.amwa.maj.io.xml.XMLSerializable

      `appendXMLChildren`

- - ### Constructor Detail

    - #### TrackImpl

          public TrackImpl()

  - ### Method Detail

    - #### getDataDefinition

          public DataDefinition getDataDefinition()

      Description copied from interface: `Track`

      Returns the data definition describing the type of essence represented by the value of this track.

      Specified by:
        `getDataDefinition` in interface `Track`
      Returns:
        Data definition object associated with the segment in the track.
      See Also:
        `DataDefinition`, `DataDefinitionConstant`, `Track.getTrackSegment()`, `Component.getComponentDataDefinition()`

    - #### getTrackName

          @MediaProperty(uuid1=17236226,
                         uuid2=256,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="TrackName",
                         aliases="SlotName",
                         typeName="UTF16String",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=18434,
                         symbol="TrackName")
          public String getTrackName()
                                                                                                                                                                                                                                                                                                                                                                                                              throws PropertyNotPresentException

      Description copied from interface: `Track`

      Returns the name of this track. This is an optional property.

      Specified by:
        `getTrackName` in interface `Track`
      Returns:
        Name of this track.
      Throws:
        `PropertyNotPresentException` - The optional name property is not present for this track.

    - #### setTrackName

          @MediaPropertySetter(value="TrackName")
          public void setTrackName(String trackName)

      Description copied from interface: `Track`

      Sets the name of this track. Set this optional property to `null` to omit it.

      Specified by:
        `setTrackName` in interface `Track`
      Parameters:
        `trackName` - Name of this track.

    - #### getEssenceTrackNumber

          @MediaProperty(uuid1=17039619,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="EssenceTrackNumber",
                         aliases={"PhysicalTrackNumber","PhysicalNumber","TrackNumber"},
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=18436,
                         symbol="EssenceTrackNumber")
          public int getEssenceTrackNumber()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                           throws PropertyNotPresentException

      Description copied from interface: `Track`

      Returns the physical output channel associated with this track. This is an optional property.

      The essence track number identifies the physical channel associated with the media. For file source packages that describe stereo audio media, the left channel should have an essence track number of 1 and the right channel should have a essnece track number of 2.

      Specified by:
        `getEssenceTrackNumber` in interface `Track`
      Returns:
        The physical output channel associated with this track.
      Throws:
        `PropertyNotPresentException` - The track is not a physical track.

    - #### setEssenceTrackNumber

          @MediaPropertySetter(value="EssenceTrackNumber")
          public void setEssenceTrackNumber(Integer essenceTrackNumber)
                                                                                      throws IllegalArgumentException

      Description copied from interface: `Track`

      Sets the physical output channel associated with this track. Set this optional property to `null` to omit it.

      The essence track number identifies the physical channel associated with the media. For file source packages that describe stereo audio media, the left channel should have a essence track number of 1 and the right channel should have a essence track number of 2.

      Specified by:
        `setEssenceTrackNumber` in interface `Track`
      Parameters:
        `essenceTrackNumber` - The physical output channel associated with this track.
      Throws:
        `IllegalArgumentException` - The given physical track number is negative.

    - #### getTrackSegment

          @MediaProperty(uuid1=100729092,
                         uuid2=516,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="TrackSegment",
                         aliases={"Segment","MobSlotSegment"},
                         typeName="SegmentStrongReference",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=18435,
                         symbol="TrackSegment")
          public Segment getTrackSegment()

      Description copied from interface: `Track`

      Returns the segment of this track, which is the value of the track.

      Specified by:
        `getTrackSegment` in interface `Track`
      Returns:
        Segment specifying the value of this track.
      See Also:
        `TypeDefinitions.SegmentStrongReference`

    - #### setTrackSegment

          @MediaPropertySetter(value="TrackSegment")
          public void setTrackSegment(Segment trackSegment)
                                                                          throws NullPointerException

      Description copied from interface: `Track`

      Sets the segment for this track, which is the value of the track.

      Specified by:
        `setTrackSegment` in interface `Track`
      Parameters:
        `trackSegment` - Segment representing the value for this track.
      Throws:
        `NullPointerException` - The given segment is `null`.

    - #### initializeTrackSegment

          public Segment initializeTrackSegment()

    - #### getTrackID

          @MediaProperty(uuid1=17236225,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="TrackID",
                         aliases="SlotID",
                         typeName="UInt32",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=18433,
                         symbol="TrackID")
          public int getTrackID()

      Description copied from interface: `Track`

      Returns the track id of this track, which specifies an integer that is used to reference this track.

      Specified by:
        `getTrackID` in interface `Track`
      Returns:
        Track id of this track.

    - #### setTrackID

          @MediaPropertySetter(value="TrackID")
          public void setTrackID(int trackID)
                                                                throws IllegalArgumentException

      Description copied from interface: `Track`

      This method will set the track id of this track, which specifies an integer that is used to reference this track.

      Specified by:
        `setTrackID` in interface `Track`
      Parameters:
        `trackID` - Track id for this track.
      Throws:
        `IllegalArgumentException` - The given track id is negative.
      See Also:
        `TrackExistsException`

    - #### initializeTrackID

          public static final int initializeTrackID()

    - #### clone

          public Track 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 `InterchangeObject`
      Specified by:
        `clone` in interface `Track`
      Overrides:
        `clone` in class `InterchangeObjectImpl`
      Returns:
        Cloned copy of this interchange object.

    - #### getComment

          public String getComment()

      Description copied from interface: `XMLSerializable`

      Include a comment when serializing a value to XML. The comment will be inserted as the first child node of the element representing the class.

      Specified by:
        `getComment` in interface `XMLSerializable`
      Overrides:
        `getComment` in class `InterchangeObjectImpl`
      Returns:
        Comment to add as the first child node of the element representing this class.

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