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

tv.amwa.maj.model.impl

## Class CommentMarkerImpl

- 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

- All Implemented Interfaces:
    Serializable, Cloneable, QComponent, QSegment, MediaEntity, MetadataObject, CommentMarker, Component, Event, InterchangeObject, Segment
  Direct Known Subclasses:
    DescriptiveMarkerImpl

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

  Implements a user comment associated with a point in time. A comment marker may have a source reference that specifies a text or audio annotation.

  See Also:
    Serialized Form

- - ### Field Summary

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

      `ObjectClassPropertyID`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CommentMarkerImpl()` Default constructor is not public to avoid unset required fields.
    `CommentMarkerImpl(DataDefinition dataDefinition)` Creates and initializes a commment marker for the given kind of essence data, which specifies a user comment that is associated with a point in time.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `CommentMarker` | `clone()` Create a cloned copy of this interchange object.
    `SourceReferenceSegment` | `getAnnotationSource()` Returns the annotation for this comment marker, which specifies a text or audio annotation.
    `void` | `setAnnotation(SourceReferenceSegment annotationSource)` Sets the annotation marker for this comment marker, which specifies a text or audio annotation.

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

    - #### CommentMarkerImpl

          public CommentMarkerImpl()

      Default constructor is not public to avoid unset required fields.

    - #### CommentMarkerImpl

          public CommentMarkerImpl(DataDefinition dataDefinition)
                            throws NullPointerException

      Creates and initializes a commment marker for the given kind of essence data, which specifies a user comment that is associated with a point in time. If this event is in an `event track`, the position must also be set using `EventImpl.setEventPosition(long)`. Call `setAnnotation(SourceReferenceSegment)` to set the optional annotation.

      Parameters:
        `dataDefinition` - Kind of data represented by this component.
      Throws:
        `NullPointerException` - Argument is `null`.

  - ### Method Detail

    - #### getAnnotationSource

          @MediaProperty(uuid1=100729092,
                         uuid2=522,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="AnnotationSource",
                         aliases="Annotation",
                         typeName="SourceReferenceStrongReference",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=2305,
                         symbol="AnnotationSource")
          public SourceReferenceSegment getAnnotationSource()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        throws PropertyNotPresentException

      Description copied from interface: `CommentMarker`

      Returns the annotation for this comment marker, which specifies a text or audio annotation. This is an optional property.

      Specified by:
        `getAnnotationSource` in interface `CommentMarker`
      Returns:
        Text or audio annotation.
      Throws:
        `PropertyNotPresentException` - The optional annotation property is not present in this comment marker.
      See Also:
        `TypeDefinitions.SourceReferenceStrongReference`

    - #### setAnnotation

          @MediaPropertySetter(value="AnnotationSource")
          public void setAnnotation(SourceReferenceSegment annotationSource)

      Description copied from interface: `CommentMarker`

      Sets the annotation marker for this comment marker, which specifies a text or audio annotation. Set this value to `null` to omit this optional property.

      Specified by:
        `setAnnotation` in interface `CommentMarker`
      Parameters:
        `annotationSource` - Specifies a text or audio annotation.

    - #### clone

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