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

tv.amwa.maj.model.impl

## Class ComponentImpl

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

- All Implemented Interfaces:
    Serializable, Cloneable, QComponent, MediaEntity, MetadataObject, Component, InterchangeObject
  Direct Known Subclasses:
    SegmentImpl, TransitionImpl

      @MediaClass(uuid1=218169601,
                  uuid2=257,
                  uuid3=512,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="Component",
                  description="The Component class represents an essence element.",
                  symbol="Component",
                  isConcrete=false)
      public class ComponentImpl
      extends InterchangeObjectImpl
      implements Component, QComponent, Cloneable, Serializable

  Implements an essence element.

  See Also:
    `TypeDefinitions.ComponentStrongReference`, `TypeDefinitions.ComponentStrongReferenceVector`, Serialized Form

- - ### Field Summary

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

      `ObjectClassPropertyID`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ComponentImpl()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `appendComponentAttribute(String name, String value)` Append an attribute name/value pair to the attributes collection of of this component, which specify attributes that are under the control of the application (for example filter control).
    `void` | `appendComponentAttribute(TaggedValue componentAttribute)` Append an attribute defined by an existing tagged value to the attributes collection of this component, which specify attributes that are under the control of the application (for example filter control).
    `void` | `appendComponentKLVData(KLVData klvData)` Appends a KLV Data to the collection of KLV data of this component.
    `void` | `appendComponentUserComment(String name, String value)` Append a user comment name/value pair to the collection of user comments of the component, which specify user comments that are directly classified and set up by the operator (for example Bin columns).
    `void` | `appendComponentUserComment(TaggedValue userComment)` Append a user comment defined by an existing tagged value to the collection of user comments of this component, which specify user comments that are directly classified and set up by the operator (for example Bin columns).
    `void` | `clearComponentAttributes()` Clear all attributes from this component, omitting this optional property.
    `void` | `clearComponentKLVData()` Clear the list of KLV data for this component, omitting this optional property.
    `void` | `clearComponentUserComments()` Clears the list of user comments of this components, omitting this optional property.
    `Component` | `clone()` Create a cloned copy of this interchange object.
    `int` | `countComponentAttributes()` Returns the size of the collection of attributes for the component, which specify attributes that are under the control of the application (for example filter control).
    `int` | `countComponentKLVData()` Returns the total number of KLV data in the collection for this component.
    `int` | `countComponentUserComments()` Returns the number of user comments in the collection of user comments of this component, which specify user comments that are directly classified and set up by the operator (for example Bin columns).
    `String` | `getComment()`
    `List<TaggedValue>` | `getComponentAttributes()` Returns the collection of attributes of this component, which specify attributes that are under the control of the application (for example filter control).
    `DataDefinition` | `getComponentDataDefinition()` Returns the data definition of the component, which specifies the kind of data described by this component.
    `List<KLVData>` | `getComponentKLVData()` Returns the list of KLV data of this component.
    `long` | `getComponentLength()` Returns the length of this component, which specifies its duration in edit units.
    `List<TaggedValue>` | `getComponentUserComments()` Returns the collection of user comments of the component, which specify user comments that are directly classified and set up by the operator (for example Bin columns).
    `String` | `getEditName()`
    `int` | `getJupiterClipOffset()`
    `String` | `getJupiterID()`
    `boolean` | `getLengthPresent()` Determines whether the length property is present for this component.
    `static DataDefinition` | `initializeComponentDataDefinition()`
    `void` | `prependComponentAttribute(TaggedValue componentAttribute)`
    `void` | `prependComponentKLVData(KLVData klvData)`
    `void` | `prependComponentUserComment(TaggedValue userComment)`
    `void` | `removeComponentAttribute(TaggedValue componentAttribute)` Remove an attribute from the collection of attributes of this component, which specify attributes that are under the control of the application (for example filter control).
    `void` | `removeComponentKLVData(KLVData klvData)` Removes the given KLV data from the collection of this component.
    `void` | `removeComponentUserComment(TaggedValue userComment)` Removes a given user comment from the collection of user comments of this component, which specify user comments that are directly classified and set up by the operator (for example Bin columns).
    `void` | `setComponentDataDefinition(DataDefinition componentDataDefinition)` Sets the data definition property for the component, which specifies the kind of data described by this component.
    `void` | `setComponentLength(long componentLength)` Sets the length property of this component, which specifies its duration in edit units.
    `void` | `setComponentLengthFromStream(long componentLength)`
    `void` | `setEditName(String editName)`
    `void` | `setJupiterClipOffset(Integer jupiterClipOffset)`
    `void` | `setJupiterID(String jupiterID)`
    `void` | `setLengthPresent(boolean lengthPresent)` Sets whether the length property is present for this component.

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

- - ### Constructor Detail

    - #### ComponentImpl

          public ComponentImpl()

  - ### Method Detail

    - #### getComponentAttributes

          @MediaProperty(uuid1=50397712,
                         uuid2=2048,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,7},
                         definedName="ComponentAttributes",
                         aliases="Attributes",
                         typeName="TaggedValueStrongReferenceVector",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=517,
                         symbol="ComponentAttributes")
          public List<TaggedValue> getComponentAttributes()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             throws PropertyNotPresentException

      Description copied from interface: `Component`

      Returns the collection of attributes of this component, which specify attributes that are under the control of the application (for example filter control). This is an optional property.

      Specified by:
        `getComponentAttributes` in interface `Component`
      Returns:
        Shallow copy of the collection of attributes of this component.
      Throws:
        `PropertyNotPresentException` - No attributes are present for this component.
      See Also:
        `TypeDefinitions.TaggedValueStrongReferenceVector`

    - #### appendComponentAttribute

          public void appendComponentAttribute(String name,
                                               String value)
                                        throws NullPointerException

      Description copied from interface: `Component`

      Append an attribute name/value pair to the attributes collection of of this component, which specify attributes that are under the control of the application (for example filter control).

      This method creates a new tagged value, initializes it with the specified attribute name/value pair, and appends it to the attribute list.

      Specified by:
        `appendComponentAttribute` in interface `Component`
      Parameters:
        `name` - Name for the new attribute.
        `value` - Corresponding value for the new attribute.
      Throws:
        `NullPointerException` - One or both of the given name and/or value method parameters are `null`.

    - #### appendComponentAttribute

          @MediaListAppend(value="ComponentAttributes")
          public void appendComponentAttribute(TaggedValue componentAttribute)
                                                                                      throws NullPointerException

      Description copied from interface: `Component`

      Append an attribute defined by an existing tagged value to the attributes collection of this component, which specify attributes that are under the control of the application (for example filter control).

      Specified by:
        `appendComponentAttribute` in interface `Component`
      Parameters:
        `componentAttribute` - Tagged value to be appended to the collection of attributes for this component.
      Throws:
        `NullPointerException` - The given attribute value is `null`.
      See Also:
        `TaggedValueDefinition`

    - #### removeComponentAttribute

          @MediaPropertyRemove(value="ComponentAttributes")
          public void removeComponentAttribute(TaggedValue componentAttribute)
                                                                                          throws NullPointerException,
                                                                                                 PropertyNotPresentException,
                                                                                                 ObjectNotFoundException

      Description copied from interface: `Component`

      Remove an attribute from the collection of attributes of this component, which specify attributes that are under the control of the application (for example filter control).

      Specified by:
        `removeComponentAttribute` in interface `Component`
      Parameters:
        `componentAttribute` - Attribute to remove from the collection of attributes of the component.
      Throws:
        `NullPointerException` - The given attribute is `null`.
        `PropertyNotPresentException` - No attributes are present for this component.
        `ObjectNotFoundException` - The given tagged value is not currently contained by the list of attributes of this component.

    - #### countComponentAttributes

          @MediaPropertyCount(value="ComponentAttributes")
          public int countComponentAttributes()

      Description copied from interface: `Component`

      Returns the size of the collection of attributes for the component, which specify attributes that are under the control of the application (for example filter control).

      Specified by:
        `countComponentAttributes` in interface `Component`
      Returns:
        Size of the collection of attributes of this component.

    - #### prependComponentAttribute

          @MediaListPrepend(value="ComponentAttributes")
          public void prependComponentAttribute(TaggedValue componentAttribute)
                                                                                        throws NullPointerException

      Throws:
        `NullPointerException`

    - #### clearComponentAttributes

          @MediaPropertyClear(value="ComponentAttributes")
          public void clearComponentAttributes()

      Description copied from interface: `Component`

      Clear all attributes from this component, omitting this optional property.

      Specified by:
        `clearComponentAttributes` in interface `Component`

    - #### getComponentUserComments

          @MediaProperty(uuid1=50462978,
                         uuid2=5632,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,7},
                         definedName="ComponentUserComments",
                         aliases="UserComments",
                         typeName="TaggedValueStrongReferenceVector",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=516,
                         symbol="ComponentUserComments")
          public List<TaggedValue> getComponentUserComments()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     throws PropertyNotPresentException

      Description copied from interface: `Component`

      Returns the collection of user comments of the component, which specify user comments that are directly classified and set up by the operator (for example Bin columns). This is an optional property.

      Specified by:
        `getComponentUserComments` in interface `Component`
      Returns:
        Shallow copy of the collection of user comments for this component.
      Throws:
        `PropertyNotPresentException` - No user comments are present for this component.
      See Also:
        `TypeDefinitions.TaggedValueStrongReferenceVector`

    - #### appendComponentUserComment

          public void appendComponentUserComment(String name,
                                                 String value)
                                          throws NullPointerException

      Description copied from interface: `Component`

      Append a user comment name/value pair to the collection of user comments of the component, which specify user comments that are directly classified and set up by the operator (for example Bin columns).

      This method creates a new tagged value, initializes it with the specified comment name/value pair, and appends it to the comment list.

      Specified by:
        `appendComponentUserComment` in interface `Component`
      Parameters:
        `name` - The name associated with the new comment to create.
        `value` - The corresponding value, or description, of the new comment.
      Throws:
        `NullPointerException` - One or both of the name and/or value values is/are `null`.

    - #### appendComponentUserComment

          @MediaListAppend(value="ComponentUserComments")
          public void appendComponentUserComment(TaggedValue userComment)

      Description copied from interface: `Component`

      Append a user comment defined by an existing tagged value to the collection of user comments of this component, which specify user comments that are directly classified and set up by the operator (for example Bin columns).

      Specified by:
        `appendComponentUserComment` in interface `Component`
      Parameters:
        `userComment` - User comment to append to the collection of user comments of this component.
      See Also:
        `TaggedValueDefinition`

    - #### countComponentUserComments

          @MediaPropertyCount(value="ComponentUserComments")
          public int countComponentUserComments()

      Description copied from interface: `Component`

      Returns the number of user comments in the collection of user comments of this component, which specify user comments that are directly classified and set up by the operator (for example Bin columns).

      Specified by:
        `countComponentUserComments` in interface `Component`
      Returns:
        Number of user comments of the component.

    - #### removeComponentUserComment

          @MediaPropertyRemove(value="ComponentUserComments")
          public void removeComponentUserComment(TaggedValue userComment)
                                                                                              throws NullPointerException,
                                                                                                     PropertyNotPresentException,
                                                                                                     ObjectNotFoundException

      Description copied from interface: `Component`

      Removes a given user comment from the collection of user comments of this component, which specify user comments that are directly classified and set up by the operator (for example Bin columns).

      Specified by:
        `removeComponentUserComment` in interface `Component`
      Parameters:
        `userComment` - User comment to remove from the collection of user comments of this component.
      Throws:
        `NullPointerException` - The given comment is `null`.
        `PropertyNotPresentException` - No user comments are present for this component.
        `ObjectNotFoundException` - The comment to be removed cannot be found in the collection of comments of this component.

    - #### clearComponentUserComments

          @MediaPropertyClear(value="ComponentUserComments")
          public void clearComponentUserComments()

      Description copied from interface: `Component`

      Clears the list of user comments of this components, omitting this optional property.

      Specified by:
        `clearComponentUserComments` in interface `Component`

    - #### prependComponentUserComment

          @MediaListPrepend(value="ComponentUserComments")
          public void prependComponentUserComment(TaggedValue userComment)
                                                                                            throws NullPointerException

      Throws:
        `NullPointerException`

    - #### getComponentDataDefinition

          @MediaProperty(uuid1=67567872,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="ComponentDataDefinition",
                         aliases="DataDefinition",
                         typeName="DataDefinitionWeakReference",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=513,
                         symbol="ComponentDataDefinition")
          public DataDefinition getComponentDataDefinition()

      Description copied from interface: `Component`

      Returns the data definition of the component, which specifies the kind of data described by this component.

      Specified by:
        `getComponentDataDefinition` in interface `Component`
      Returns:
        Data definition of this component.
      See Also:
        `TypeDefinitions.DataDefinitionWeakReference`

    - #### setComponentDataDefinition

          @MediaPropertySetter(value="ComponentDataDefinition")
          public void setComponentDataDefinition(DataDefinition componentDataDefinition)
                                                                                                throws NullPointerException

      Description copied from interface: `Component`

      Sets the data definition property for the component, which specifies the kind of data described by this component.

      Specified by:
        `setComponentDataDefinition` in interface `Component`
      Parameters:
        `componentDataDefinition` - Data definition of this component.
      Throws:
        `NullPointerException` - The given data definition is `null`.

    - #### initializeComponentDataDefinition

          public static final DataDefinition initializeComponentDataDefinition()

    - #### getComponentKLVData

          @MediaProperty(uuid1=50397712,
                         uuid2=1024,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="ComponentKLVData",
                         aliases="KLVData",
                         typeName="KLVDataStrongReferenceVector",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=515,
                         symbol="ComponentKLVData")
          public List<KLVData> getComponentKLVData()
                                                                                                                                                                                                                                                                                                                                                                                                                                                         throws PropertyNotPresentException

      Description copied from interface: `Component`

      Returns the list of KLV data of this component. This is an optional property.

      Specified by:
        `getComponentKLVData` in interface `Component`
      Returns:
        Shallow copy of the list of KLV data of this component.
      Throws:
        `PropertyNotPresentException` - No KLV data items are present for this component.
      See Also:
        `TypeDefinitions.KLVDataStrongReferenceVector`

    - #### appendComponentKLVData

          @MediaListAppend(value="ComponentKLVData")
          public void appendComponentKLVData(KLVData klvData)
                                                                                 throws NullPointerException

      Description copied from interface: `Component`

      Appends a KLV Data to the collection of KLV data of this component.

      Specified by:
        `appendComponentKLVData` in interface `Component`
      Parameters:
        `klvData` - KLV data value to add to the set of KLV data values of this component.
      Throws:
        `NullPointerException` - The given KLV data value is `null`.

    - #### countComponentKLVData

          @MediaPropertyCount(value="ComponentKLVData")
          public int countComponentKLVData()

      Description copied from interface: `Component`

      Returns the total number of KLV data in the collection for this component.

      Specified by:
        `countComponentKLVData` in interface `Component`
      Returns:
        Number of KLV data objects in this collection for this component.

    - #### removeComponentKLVData

          @MediaPropertyRemove(value="ComponentKLVData")
          public void removeComponentKLVData(KLVData klvData)
                                                                                     throws NullPointerException,
                                                                                            PropertyNotPresentException,
                                                                                            ObjectNotFoundException

      Description copied from interface: `Component`

      Removes the given KLV data from the collection of this component.

      Specified by:
        `removeComponentKLVData` in interface `Component`
      Parameters:
        `klvData` - KLV data value to remove from the component.
      Throws:
        `NullPointerException` - The given KLV data item is `null`.
        `PropertyNotPresentException` - No KLV data items are present for this component.
        `ObjectNotFoundException` - The given KLV data object is not in the collection of this component.

    - #### prependComponentKLVData

          @MediaListPrepend(value="ComponentKLVData")
          public void prependComponentKLVData(KLVData klvData)
                                                                                   throws NullPointerException

      Throws:
        `NullPointerException`

    - #### clearComponentKLVData

          @MediaPropertyClear(value="ComponentKLVData")
          public void clearComponentKLVData()

      Description copied from interface: `Component`

      Clear the list of KLV data for this component, omitting this optional property.

      Specified by:
        `clearComponentKLVData` in interface `Component`

    - #### getComponentLength

          @MediaProperty(uuid1=117572097,
                         uuid2=259,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="ComponentLength",
                         aliases="Length",
                         typeName="LengthType",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=514,
                         symbol="ComponentLength")
          public long getComponentLength()
                                                                                                                                                                                                                                                                                                                                                                                                                          throws BadPropertyException

      Description copied from interface: `Component`

      Returns the length of this component, which specifies its duration in edit units. This is an optional property, which will be present for time-varying media and may be present for events.

      Specified by:
        `getComponentLength` in interface `Component`
      Returns:
        Length of this component in edit units.
      Throws:
        `BadPropertyException` - The optional length property is not present for this object.

    - #### setComponentLength

          public void setComponentLength(long componentLength)
                                  throws BadLengthException

      Description copied from interface: `Component`

      Sets the length property of this component, which specifies its duration in edit units. This is an optional property, which will only be present for time-varying media.

      Specified by:
        `setComponentLength` in interface `Component`
      Parameters:
        `componentLength` - The duration in edit units of this component.
      Throws:
        `BadLengthException` - Cannot set the length to a negative value.

    - #### setComponentLengthFromStream

          @MediaPropertySetter(value="ComponentLength")
          public void setComponentLengthFromStream(long componentLength)
                                                                                          throws BadLengthException

      Throws:
        `BadLengthException`

    - #### getLengthPresent

          public boolean getLengthPresent()

      Description copied from interface: `Component`

      Determines whether the length property is present for this component. This method allows a user to prepare a component for a specific kind of `track` according the the length rules of tracks. These rules are:

      - If a component is in a `timeline track` then it shall have a length property.
      - If a component is in a `static trackt` then it shall not have a length property.
      - If a component is in an `event track` then it may have a length property. In this case, if no length property is specified then the component describes an instantaneous `event` that does not have a duration.

      The default value is that length values are not present, although components that are not appropriate for static data override this to be `true`.

      Specified by:
        `getLengthPresent` in interface `Component`
      Returns:
        Is the context-dependent length property present for this component?

    - #### setLengthPresent

          public void setLengthPresent(boolean lengthPresent)

      Description copied from interface: `Component`

      Sets whether the length property is present for this component. This method allows a user to prepare a component for a specific kind of `track` according the the length rules of tracks. These rules are:

      - If a component is in a `timeline track` then it shall have a length property.
      - If a component is in a `static track` then it shall not have a length property.
      - If a component is in an `event track` then it may have a length property. In this case, if no length property is specified then the component describes an instantaneous `event` that does not have a duration.

      The default value is that length values are not present, although components that are not appropriate for static data override this to be `true`. The constructors and `setSegment()` methods of `timeline track` and `static track` will set the presence or absence of the length property according to the above rules. Therefore, this method is mainly useful to set whether an `event` should be considered as instantaneous or not.

      Specified by:
        `setLengthPresent` in interface `Component`
      Parameters:
        `lengthPresent` - Is the context-dependent length property present for this component?

    - #### getJupiterID

          @MediaProperty(uuid1=1172384523,
                         uuid2=-21475,
                         uuid3=17326,
                         uuid4={-99,-76,54,-16,101,-81,-61,-21},
                         definedName="Jupiter ID",
                         symbol="Jupiter_ID",
                         aliases="Jupiter_ID",
                         typeName="UTF16String",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         prefix="q",
                         namespace="http://www.quantel.com/genQ/extensions")
          public String getJupiterID()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 throws PropertyNotPresentException

      Specified by:
        `getJupiterID` in interface `QComponent`
      Throws:
        `PropertyNotPresentException`

    - #### setJupiterID

          @MediaPropertySetter(value="Jupiter ID")
          public void setJupiterID(String jupiterID)

      Specified by:
        `setJupiterID` in interface `QComponent`

    - #### getJupiterClipOffset

          @MediaProperty(uuid1=-1709905003,
                         uuid2=-19950,
                         uuid3=19729,
                         uuid4={-68,93,-78,-13,107,55,-70,43},
                         definedName="Jupiter Clip Offset",
                         symbol="Jupiter_Clip_Offset",
                         aliases="Jupiter_Clip_Offset",
                         typeName="Int32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         prefix="q",
                         namespace="http://www.quantel.com/genQ/extensions")
           @Int32
          public int getJupiterClipOffset()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  throws PropertyNotPresentException

      Specified by:
        `getJupiterClipOffset` in interface `QComponent`
      Throws:
        `PropertyNotPresentException`

    - #### setJupiterClipOffset

          @MediaPropertySetter(value="Jupiter Clip Offset")
          public void setJupiterClipOffset(@Int32
                                                                                             Integer jupiterClipOffset)

      Specified by:
        `setJupiterClipOffset` in interface `QComponent`

    - #### getEditName

          @MediaProperty(uuid1=-19088744,
                         uuid2=8807,
                         uuid3=4563,
                         uuid4={-118,76,0,80,4,14,-9,-46},
                         definedName="EditName",
                         symbol="EditName",
                         aliases="EditName",
                         typeName="UTF16String",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         prefix="q",
                         namespace="http://www.quantel.com/genQ/extensions")
          public String getEditName()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                throws PropertyNotPresentException

      Specified by:
        `getEditName` in interface `QComponent`
      Throws:
        `PropertyNotPresentException`

    - #### setEditName

          @MediaPropertySetter(value="EditName")
          public void setEditName(String editName)

      Specified by:
        `setEditName` in interface `QComponent`

    - #### getComment

          public String getComment()

      Overrides:
        `getComment` in class `InterchangeObjectImpl`

    - #### clone

          public Component 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 `InterchangeObject`
      Overrides:
        `clone` in class `InterchangeObjectImpl`
      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.