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

tv.amwa.maj.model.impl

## Class DescriptiveMarkerImpl

- 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.EventImpl
        - - tv.amwa.maj.model.impl.CommentMarkerImpl
          - - tv.amwa.maj.model.impl.DescriptiveMarkerImpl

- All Implemented Interfaces:
    Serializable, Cloneable, QComponent, QSegment, MediaEntity, MetadataObject, CommentMarker, Component, DescriptiveMarker, Event, InterchangeObject, Segment

      @MediaClass(uuid1=218169601,
                  uuid2=257,
                  uuid3=16640,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="DescriptiveMarker",
                  description="The DescriptiveMarker class specifies descriptive metadata that is associated with a point in time.",
                  symbol="DescriptiveMarker")
      public class DescriptiveMarkerImpl
      extends CommentMarkerImpl
      implements DescriptiveMarker, Serializable, Cloneable

  Implements descriptive metadata associated with a point in time and the tracks that the description refers to. A descriptive marker may contain a descriptive framework that specifies the metadata.

  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface tv.amwa.maj.model.DescriptiveMarker

      `DescriptiveMarker.AllTracksDescribed`

  - ### Field Summary

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

      `ObjectClassPropertyID`

    - ### Fields inherited from interface tv.amwa.maj.model.DescriptiveMarker

      `AllTracksDescribed, NoTracksDescribed`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DescriptiveMarkerImpl()` Creates and initializes a descriptive marker.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addDescribedTrackID(int trackID)`
    `DescriptiveMarker` | `clone()` Create a cloned copy of this interchange object.
    `Set<Integer>` | `getDescribedTrackIDs()` Returns the set of described track ids that are referenced by this descriptive marker.
    `int` | `getDescribedTrackIDsSize()` Returns the number of track ids referred to by this descriptive marker.
    `DescriptiveFramework` | `getDescriptiveFrameworkObject()` Returns the `descriptive framework` that specifies the metadata for this descriptive marker.
    `String` | `getDescriptiveMetadataApplicationEnvironmentID()` Returns the application environment identifier, an Uniform Resource Identifier (RFC 3986) that identifies the application to which the information in this plugin object applies.
    `AUID` | `getDescriptiveMetadataPluginID()` Returns the immutable identifier for this descriptive metadata plugin instance.
    `ExtensionScheme` | `getDescriptiveMetadataScheme()` Returns the descriptive metadata scheme that is referenced by the descriptive framework object.
    `void` | `setDescribedTrackIDs(Set<Integer> describedTrackIDs)` Specifies the track ids in the package to which this descriptive marker refers.
    `void` | `setDescriptiveFrameworkObject(DescriptiveFramework descriptiveFrameworkObject)` Sets the `descriptive framework` that specifies the metadata for this descriptive marker.
    `void` | `setDescriptiveMetadataApplicationEnvironmentID(String descriptiveMetadataApplicationEnvironmentID)` Sets the application environment identifier, an Uniform Resource Identifier (RFC 3986) that identifies the application to which the information in this plugin object applies.
    `void` | `setDescriptiveMetadataPluginID(AUID descriptiveMetadataPluginID)` Sets the immutable identifier for this descriptive metadata plugin instance.
    `void` | `setDescriptiveMetadataScheme(ExtensionScheme extensionScheme)` Sets the descriptive metadata scheme that is referenced by the descriptive framework object.

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

      `getAnnotationSource, setAnnotation`

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

      `getEventComment, getEventPosition, getPositionPresent, initializeEventPosition, setEventComment, setEventPosition, setPositionPresent`

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

      `getAnnotationSource, setAnnotation`

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

      `getEventComment, getEventPosition, setEventComment, setEventPosition`

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

    - #### DescriptiveMarkerImpl

          public DescriptiveMarkerImpl()

      Creates and initializes a descriptive marker. If this event is in an `event track`, the position must also be set using `EventImpl.setEventPosition(long)`.

  - ### Method Detail

    - #### getDescribedTrackIDs

          @MediaProperty(uuid1=17236229,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,4},
                         definedName="DescribedTrackIDs",
                         aliases={"DescribedSlots","DescribedSlotIDs","DescribedTracks"},
                         typeName="UInt32Set",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=24834,
                         symbol="DescribedTrackIDs")
          public Set<Integer> getDescribedTrackIDs()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     throws PropertyNotPresentException

      Description copied from interface: `DescriptiveMarker`

      Returns the set of described track ids that are referenced by this descriptive marker. If the value returned is equal to `DescriptiveMarker.AllTracksDescribed`, this descriptive marker describes all tracks in the associated package.

      Specified by:
        `getDescribedTrackIDs` in interface `DescriptiveMarker`
      Returns:
        Track ids in this package that this descriptive marker describes.
      Throws:
        `PropertyNotPresentException` - The optional described tracks property is not present in this descriptive marker.

    - #### setDescribedTrackIDs

          @MediaPropertySetter(value="DescribedTrackIDs")
          public void setDescribedTrackIDs(Set<Integer> describedTrackIDs)
                                                                                    throws IllegalArgumentException

      Description copied from interface: `DescriptiveMarker`

      Specifies the track ids in the package to which this descriptive marker refers. Set this optional property to `null` to omit it, which indicates that all tracks are described. Set to `DescriptiveMarker.NoTracksDescribed` to indicate that the marker does not refer to any tracks.

      Specified by:
        `setDescribedTrackIDs` in interface `DescriptiveMarker`
      Parameters:
        `describedTrackIDs` - Track id for the tracks in the associated package that this descriptive marker describes.
      Throws:
        `IllegalArgumentException` - One or more of the track ids in the given set is negative.
      See Also:
        `DescriptiveMarker.AllTracksDescribed`, `Track`

    - #### addDescribedTrackID

          @MediaSetAdd(value="DescribedTrackIDs")
          public void addDescribedTrackID(@UInt32
                                                                                  int trackID)
                                                                           throws IllegalArgumentException

      Throws:
        `IllegalArgumentException`

    - #### getDescribedTrackIDsSize

          public int getDescribedTrackIDsSize()
                                       throws PropertyNotPresentException

      Description copied from interface: `DescriptiveMarker`

      Returns the number of track ids referred to by this descriptive marker.Note that the default value is `DescriptiveMarker.AllTracksDescribed`, which has `Integer.MAX_VALUE` track ids. Care should be taken not to end up iterating over all of these entries!

      Specified by:
        `getDescribedTrackIDsSize` in interface `DescriptiveMarker`
      Returns:
        Number of track ids stored.
      Throws:
        `PropertyNotPresentException` - The optional described tracks property is not present in this descriptive marker.

    - #### getDescriptiveFrameworkObject

          @MediaProperty(uuid1=100729092,
                         uuid2=524,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,5},
                         definedName="DescriptiveFrameworkObject",
                         aliases={"Description","DescriptiveMarkerDescription"},
                         typeName="DescriptiveFrameworkStrongReference",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=24833,
                         symbol="DescriptiveFrameworkObject")
          public DescriptiveFramework getDescriptiveFrameworkObject()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            throws PropertyNotPresentException

      Description copied from interface: `DescriptiveMarker`

      Returns the `descriptive framework` that specifies the metadata for this descriptive marker.

      Specified by:
        `getDescriptiveFrameworkObject` in interface `DescriptiveMarker`
      Returns:
        The associated descriptive framework.
      Throws:
        `PropertyNotPresentException` - The optional descriptive framework property is not present in this descriptive marker.
      See Also:
        `DescriptiveFramework`

    - #### setDescriptiveFrameworkObject

          @MediaPropertySetter(value="DescriptiveFrameworkObject")
          public void setDescriptiveFrameworkObject(DescriptiveFramework descriptiveFrameworkObject)

      Description copied from interface: `DescriptiveMarker`

      Sets the `descriptive framework` that specifies the metadata for this descriptive marker. Set this optional property to `null` to omit it.

      Specified by:
        `setDescriptiveFrameworkObject` in interface `DescriptiveMarker`
      Parameters:
        `descriptiveFrameworkObject` - Specifies the descriptive framework.
      See Also:
        `DescriptiveFramework`

    - #### getDescriptiveMetadataPluginID

          @MediaProperty(uuid1=85985025,
                         uuid2=3584,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,12},
                         definedName="DescriptiveMetadataPluginID",
                         aliases="DescriptiveMetadataPlug-InID",
                         typeName="AUID",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="DescriptiveMetadataPluginID",
                         description="Immutable identifier for this descriptive metadata plugin instance.")
          public AUID getDescriptiveMetadataPluginID()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               throws PropertyNotPresentException

      Description copied from interface: `DescriptiveMarker`

      Returns the immutable identifier for this descriptive metadata plugin instance.

      Specified by:
        `getDescriptiveMetadataPluginID` in interface `DescriptiveMarker`
      Returns:
        Immutable identifier for this descriptive metadata plugin instance.
      Throws:
        `PropertyNotPresentException` - The optional descriptive metadata plugin identifier is not present for this descriptive marker.

    - #### setDescriptiveMetadataPluginID

          @MediaPropertySetter(value="DescriptiveMetadataPluginID")
          public void setDescriptiveMetadataPluginID(AUID descriptiveMetadataPluginID)

      Description copied from interface: `DescriptiveMarker`

      Sets the immutable identifier for this descriptive metadata plugin instance.

      Specified by:
        `setDescriptiveMetadataPluginID` in interface `DescriptiveMarker`
      Parameters:
        `descriptiveMetadataPluginID` - Immutable identifier for this descriptive metadata plugin instance.

    - #### getDescriptiveMetadataApplicationEnvironmentID

          @MediaProperty(uuid1=85985025,
                         uuid2=4096,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,12},
                         definedName="DescriptiveMetadataApplicationEnvironmentID",
                         typeName="UTF16String",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="DescriptiveMetadataApplicationEnvironmentID",
                         description="Application environment identifier, an Uniform Resource Identifier (RFC 3986) that identifies the application to which the information in this plugin object applies.")
          public String getDescriptiveMetadataApplicationEnvironmentID()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   throws PropertyNotPresentException

      Description copied from interface: `DescriptiveMarker`

      Returns the application environment identifier, an Uniform Resource Identifier (RFC 3986) that identifies the application to which the information in this plugin object applies. This is an optional property.

      Specified by:
        `getDescriptiveMetadataApplicationEnvironmentID` in interface `DescriptiveMarker`
      Returns:
        Application environment identifier.
      Throws:
        `PropertyNotPresentException` - The optional descriptive metadata application environment identifier is not present for this descriptive marker.

    - #### setDescriptiveMetadataApplicationEnvironmentID

          @MediaPropertySetter(value="DescriptiveMetadataApplicationEnvironmentID")
          public void setDescriptiveMetadataApplicationEnvironmentID(String descriptiveMetadataApplicationEnvironmentID)

      Description copied from interface: `DescriptiveMarker`

      Sets the application environment identifier, an Uniform Resource Identifier (RFC 3986) that identifies the application to which the information in this plugin object applies. Set this optional property to `null` to omit it.

      Specified by:
        `setDescriptiveMetadataApplicationEnvironmentID` in interface `DescriptiveMarker`
      Parameters:
        `descriptiveMetadataApplicationEnvironmentID` - Application environment identifier.

    - #### getDescriptiveMetadataScheme

          @MediaProperty(uuid1=67504132,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,12},
                         definedName="DescriptiveMetadataScheme",
                         typeName="ExtensionSchemeWeakReference",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="DescriptiveMetadataScheme",
                         description="Descriptive metadata scheme that is referenced by the descriptive framework object.")
          public ExtensionScheme getDescriptiveMetadataScheme()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  throws PropertyNotPresentException

      Description copied from interface: `DescriptiveMarker`

      Returns the descriptive metadata scheme that is referenced by the descriptive framework object. A descriptive metadata scheme is represented by an extension scheme. This is an optional property.

      Specified by:
        `getDescriptiveMetadataScheme` in interface `DescriptiveMarker`
      Returns:
        Descriptive metadata scheme that is referenced by the descriptive framework object.
      Throws:
        `PropertyNotPresentException` - The optional descriptive metadata scheme property is not present for this descriptive marker.
      See Also:
        `DescriptiveMarker.getDescriptiveFrameworkObject()`, `Root.getRootExtensions()`

    - #### setDescriptiveMetadataScheme

          @MediaPropertySetter(value="DescriptiveMetadataScheme")
          public void setDescriptiveMetadataScheme(ExtensionScheme extensionScheme)

      Description copied from interface: `DescriptiveMarker`

      Sets the descriptive metadata scheme that is referenced by the descriptive framework object. A descriptive metadata scheme is represented by an extension scheme. Set this optional property to `null` to omit it.

      Specified by:
        `setDescriptiveMetadataScheme` in interface `DescriptiveMarker`
      Parameters:
        `extensionScheme` - Descriptive metadata scheme that is referenced by the descriptive framework object.
      See Also:
        `DescriptiveMarker.setDescriptiveFrameworkObject(DescriptiveFramework)`

    - #### clone

          public DescriptiveMarker 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 `CommentMarker`
      Specified by:
        `clone` in interface `Component`
      Specified by:
        `clone` in interface `DescriptiveMarker`
      Specified by:
        `clone` in interface `Event`
      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `Segment`
      Overrides:
        `clone` in class `CommentMarkerImpl`
      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.