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

tv.amwa.maj.model

## Interface DescriptiveClip

- All Superinterfaces:
    Component, InterchangeObject, MediaEntity, MetadataObject, Segment, SourceClip, SourceReferenceSegment
  All Known Implementing Classes:
    DescriptiveClipImpl

      public interface DescriptiveClip
      extends SourceClip

  Specifies what is being described in terms of tracks and references a package to provide that description. This enables a segment in a descriptive metadata track to reference a section of descriptive metadata in the track of another package. Typically, the referenced track would contain descriptive markers.

  See Also:
    `TrackID`, `Track`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addDescribedTrackID(int describedTrackID)` Adds the given described track id to the set of described track ids referenced by this descriptive clip, which specify which of the tracks in the package are being referenced.
    `void` | `clearDescribedTrackIDs()` Clears the list of described track ids of this descriptive clip, omitting this optional property.
    `DescriptiveClip` | `clone()` Create a cloned copy of this descriptive clip.
    `int` | `countDescribedTrackIDs()` Returns the number of described track ids in the set of described track ids referenced by this descriptive clip, which specify which of the tracks in the package are being referenced.
    `Set<Integer>` | `getDescribedTrackIDs()` Returns a copy of the set of descriptive track ids referenced by this descriptive clip, which specify which of the tracks in the package are being referenced.
    `boolean` | `isDescribedTrackIDPresent(int describedTrackID)` Returns `true` if the given described track id is present in the set of described track ids referenced from this descriptive clip, which specify which of the tracks in the package are being referenced.
    `void` | `removeDescribedTrackID(int describedTrackID)` Removes the given described track id from the list of described track ids referenced by this descriptive clip, which specify which of the tracks in the package are being referenced.

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

      `getFade, getFadeInLength, getFadeInType, getFadeOutLength, getFadeOutType, getSourceReference, getStartPosition, resolveRef, setFade, setFade, setSourceReference, setStartPosition`

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

      `getChannelIDs, getChannelIDsSize, getMonoSourceTrackIDs, getMonoSourceTrackIDsSize, getSourcePackageID, getSourceTrackID, setChannelIDs, setMonoSourceTrackIDs, setSourcePackageID, setSourceTrackID`

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

    - #### countDescribedTrackIDs

          @TrackID
          int countDescribedTrackIDs()

      Returns the number of described track ids in the set of described track ids referenced by this descriptive clip, which specify which of the tracks in the package are being referenced.

      Returns:
        Number of described track ids in the set of described track ids referenced by this descriptive clip.

    - #### clearDescribedTrackIDs

          void clearDescribedTrackIDs()

      Clears the list of described track ids of this descriptive clip, omitting this optional property.

    - #### getDescribedTrackIDs

          @TrackID
          Set<Integer> getDescribedTrackIDs()

      Returns a copy of the set of descriptive track ids referenced by this descriptive clip, which specify which of the tracks in the package are being referenced.

      Returns:
        A copy of the set of descriptive track ids referenced by this descriptive clip.

    - #### isDescribedTrackIDPresent

          boolean isDescribedTrackIDPresent(@TrackID
                                            int describedTrackID)

      Returns `true` if the given described track id is present in the set of described track ids referenced from this descriptive clip, which specify which of the tracks in the package are being referenced.

      Parameters:
        `describedTrackID` - Described track id to check to see if it is contained in the set of described track ids of this descriptive clip.
      Returns:
        Is the given described track id present in the set of described track ids referenced by this descriptive clip?
      Throws:
        `IllegalArgumentException` - The given track id is negative.

    - #### addDescribedTrackID

          void addDescribedTrackID(@TrackID
                                   int describedTrackID)
                            throws IllegalArgumentException,
                                   InvalidParameterException

      Adds the given described track id to the set of described track ids referenced by this descriptive clip, which specify which of the tracks in the package are being referenced.

      Parameters:
        `describedTrackID` - Descriptive track id to add to the set of described track ids referenced by this descriptive clip.
      Throws:
        `IllegalArgumentException` - The given track id is negative.
        `InvalidParameterException` - The given described track id is already contained in the set of described track ids referenced by this descriptive clip.

    - #### removeDescribedTrackID

          void removeDescribedTrackID(@TrackID
                                      int describedTrackID)
                               throws InvalidParameterException

      Removes the given described track id from the list of described track ids referenced by this descriptive clip, which specify which of the tracks in the package are being referenced. In effect, optional property empty sets become not present when the last element is removed.

      Parameters:
        `describedTrackID` - Described track id to remove from this descriptive clip.
      Throws:
        `IllegalArgumentException` - A given track id is negative.
        `InvalidParameterException` - The given track id is not in the set of descriptive track ids of this descriptive clip.

    - #### clone

          DescriptiveClip clone()

      Create a cloned copy of this descriptive clip.

      Specified by:
        `clone` in interface `Component`
      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `MediaEntity`
      Specified by:
        `clone` in interface `Segment`
      Specified by:
        `clone` in interface `SourceClip`
      Specified by:
        `clone` in interface `SourceReferenceSegment`
      Returns:
        Cloned copy of this descriptive clip.

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