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

tv.amwa.maj.model.impl

## Class DescriptiveClipImpl

- 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.SourceReferenceSegmentImpl
        - - tv.amwa.maj.model.impl.SourceClipImpl
          - - tv.amwa.maj.model.impl.DescriptiveClipImpl

- All Implemented Interfaces:
    Serializable, Cloneable, QComponent, QSegment, QSourceClip, MediaEntity, MetadataObject, Component, DescriptiveClip, InterchangeObject, Segment, SourceClip, SourceReferenceSegment

      @MediaClass(uuid1=218169601,
                  uuid2=257,
                  uuid3=17664,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="DescriptiveClip",
                  description="A descriptive clip specifies what is being described and references a package to provide that description.",
                  symbol="DescriptiveClip")
      public class DescriptiveClipImpl
      extends SourceClipImpl
      implements DescriptiveClip, Serializable, Cloneable

  Implements a means to identify 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:
    Serialized Form

- - ### Field Summary

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

      `ObjectClassPropertyID`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DescriptiveClipImpl()`
    `DescriptiveClipImpl(DataDefinition dataDefinition, long length, SourceReferenceValue sourceReference)` Creates and initializes a new descriptive clip, which specifies what is being described and references a package to provide that description.

  - ### Method Summary

    All Methods Instance Methods Concrete 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 interchange object.
    `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 class tv.amwa.maj.model.impl.SourceClipImpl

      `getFade, getFadeInLength, getFadeInType, getFadeOutLength, getFadeOutType, getRushBlob, getRushChannelMask, getSourceReference, getStartPosition, resolveRef, setFade, setFade, setFadeInLength, setFadeInType, setFadeOutLength, setFadeOutType, setRushBlob, setRushChannelMask, setSourceReference, setStartPosition`

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

      `clearChannelIDs, clearMonoSourceTrackIDs, getChannelIDs, getChannelIDsSize, getMonoSourceTrackIDs, getMonoSourceTrackIDsSize, getSourcePackageID, getSourcePackageIDString, getSourceTrackID, initializeSourceTrackID, setChannelIDs, setMonoSourceTrackIDs, setSourcePackageID, setSourcePackageIDString, setSourceTrackID`

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

- - ### Constructor Detail

    - #### DescriptiveClipImpl

          public DescriptiveClipImpl()

    - #### DescriptiveClipImpl

          public DescriptiveClipImpl(DataDefinition dataDefinition,
                                     long length,
                                     SourceReferenceValue sourceReference)
                              throws NullPointerException,
                                     BadLengthException

      Creates and initializes a new descriptive clip, which specifies what is being described and references a package to provide that description.

      Parameters:
        `dataDefinition` - Kind of data represented by this component.
        `length` - Length of the source clip component.
        `sourceReference` - Reference to the package providing the description.
      Throws:
        `NullPointerException` - The data definition and/or source reference arguments are `null`.
        `BadLengthException` - The length of a descriptive clip cannot be negative.

  - ### Method Detail

    - #### getDescribedTrackIDs

          @MediaProperty(uuid1=17236230,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,5},
                         definedName="DescriptiveClipDescribedTrackIDs",
                         aliases="DescribedSlotIDs",
                         typeName="UInt32Set",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=24835,
                         symbol="DescriptiveClipDescribedTrackIDs")
          public Set<Integer> getDescribedTrackIDs()

      Description copied from interface: `DescriptiveClip`

      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.

      Specified by:
        `getDescribedTrackIDs` in interface `DescriptiveClip`
      Returns:
        A copy of the set of descriptive track ids referenced by this descriptive clip.

    - #### addDescribedTrackID

          @MediaSetAdd(value="DescriptiveClipDescribedTrackIDs")
          public void addDescribedTrackID(int describedTrackID)
                                                                                          throws IllegalArgumentException,
                                                                                                 InvalidParameterException

      Description copied from interface: `DescriptiveClip`

      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.

      Specified by:
        `addDescribedTrackID` in interface `DescriptiveClip`
      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.

    - #### countDescribedTrackIDs

          @MediaPropertyCount(value="DescriptiveClipDescribedTrackIDs")
          public int countDescribedTrackIDs()

      Description copied from interface: `DescriptiveClip`

      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.

      Specified by:
        `countDescribedTrackIDs` in interface `DescriptiveClip`
      Returns:
        Number of described track ids in the set of described track ids referenced by this descriptive clip.

    - #### isDescribedTrackIDPresent

          @MediaPropertyContains(value="DescriptiveClipDescribedTrackIDs")
          public boolean isDescribedTrackIDPresent(int describedTrackID)
                                                                                                             throws IllegalArgumentException

      Description copied from interface: `DescriptiveClip`

      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.

      Specified by:
        `isDescribedTrackIDPresent` in interface `DescriptiveClip`
      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.

    - #### removeDescribedTrackID

          @MediaPropertyRemove(value="DescriptiveClipDescribedTrackIDs")
          public void removeDescribedTrackID(int describedTrackID)
                                                                                                     throws IllegalArgumentException,
                                                                                                            InvalidParameterException

      Description copied from interface: `DescriptiveClip`

      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.

      Specified by:
        `removeDescribedTrackID` in interface `DescriptiveClip`
      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.

    - #### clearDescribedTrackIDs

          @MediaPropertyClear(value="DescriptiveClipDescribedTrackIDs")
          public void clearDescribedTrackIDs()

      Description copied from interface: `DescriptiveClip`

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

      Specified by:
        `clearDescribedTrackIDs` in interface `DescriptiveClip`

    - #### clone

          public DescriptiveClip 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 `DescriptiveClip`
      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `Segment`
      Specified by:
        `clone` in interface `SourceClip`
      Specified by:
        `clone` in interface `SourceReferenceSegment`
      Overrides:
        `clone` in class `SourceClipImpl`
      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.