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

tv.amwa.maj.model.impl

## Class ContainerDefinitionImpl

- java.lang.Object
- - tv.amwa.maj.model.impl.InterchangeObjectImpl
  - - tv.amwa.maj.model.impl.DefinitionObjectImpl
    - - tv.amwa.maj.model.impl.ContainerDefinitionImpl

- All Implemented Interfaces:
    Serializable, Cloneable, ContainerConstant, MediaEntity, MetadataObject, WeakReferenceTarget, ContainerDefinition, DefinitionObject, DefinitionType, InterchangeObject

      @MediaClass(uuid1=218169601,
                  uuid2=257,
                  uuid3=8192,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="ContainerDefinition",
                  description="The ContainerDefinition class specifies the mechanism used to store essence data.",
                  symbol="ContainerDefinition")
      public class ContainerDefinitionImpl
      extends DefinitionObjectImpl
      implements ContainerDefinition, Serializable, ContainerConstant, Cloneable

  Implements a definition for the mechanism used to store essence data. A container can be either a kind of file, such as an AAF file, or it can be another mechanism for storing essence data.

  See Also:
    `TypeDefinitions.ContainerDefinitionWeakReference`, `TypeDefinitions.ContainerDefinitionStrongReference`, `TypeDefinitions.ContainerDefinitionStrongReferenceSet`, Serialized Form

- - ### Field Summary

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

      `ObjectClassPropertyID`

    - ### Fields inherited from interface tv.amwa.maj.constant.ContainerConstant

      `AAF, AAFKLV, AAFMSS, AAFXML, AIFFAIFC, External, JFIF, MXFGC_Avid_DNX_145_1080i, MXFGC_Avid_DNX_145_1080p, MXFGC_Avid_DNX_145_720p, MXFGC_Avid_DNX_220_1080i, MXFGC_Avid_DNX_220_1080p, MXFGC_Avid_DNX_220_720p, MXFGC_Avid_DNX_220X_1080i, MXFGC_Avid_DNX_220X_1080p, MXFGC_Avid_DNX_220X_720p, MXFGC_Avid_DNX_36_1080p, MXFGC_Clipwrapped_AES3_audio_data, MXFGC_Clipwrapped_Alaw_Audio, MXFGC_Clipwrapped_AVCbytestream_VideoStream0_SID, MXFGC_Clipwrapped_Broadcast_Wave_audio_data, MXFGC_Clipwrapped_DVbased_1080x50I_100Mbps, MXFGC_Clipwrapped_DVbased_1080x5994I_100Mbps, MXFGC_Clipwrapped_DVbased_525x5994I_25Mbps, MXFGC_Clipwrapped_DVbased_525x5994I_50Mbps, MXFGC_Clipwrapped_DVbased_625x50I_25Mbps, MXFGC_Clipwrapped_DVbased_625x50I_50Mbps, MXFGC_Clipwrapped_DVbased_720x50P_100Mbps, MXFGC_Clipwrapped_DVbased_720x5994P_100Mbps, MXFGC_Clipwrapped_DVbased_UndefinedSource, MXFGC_Clipwrapped_IECDV_525x5994I_25Mbps, MXFGC_Clipwrapped_IECDV_525x5994I_25Mbps_SMPTE322M, MXFGC_Clipwrapped_IECDV_625x50I_25Mbps, MXFGC_Clipwrapped_IECDV_625x50I_25Mbps_SMPTE322M, MXFGC_Clipwrapped_IECDV_UndefinedSource_25Mbps, MXFGC_Clipwrapped_Uncompressed_525x5994I_720_422, MXFGC_Clipwrapped_Uncompressed_525x5994P_960_422, MXFGC_Clipwrapped_Uncompressed_625x50I_720_422, MXFGC_Clipwrapped_Uncompressed_625x50P_960_422, MXFGC_Clipwrapped_VC1, MXFGC_Clipwrapped_VC3, MXFGC_CustomClosedGOPwrapped_MPEGES_VideoStream1_SID, MXFGC_Customwrapped_Alaw_Audio, MXFGC_Framewrapped_AES3_audio_data, MXFGC_Framewrapped_Alaw_Audio, MXFGC_Framewrapped_Broadcast_Wave_audio_data, MXFGC_Framewrapped_DVbased_1080x50I_100Mbps, MXFGC_Framewrapped_DVbased_1080x5994I_100Mbps, MXFGC_Framewrapped_DVbased_525x5994I_25Mbps, MXFGC_Framewrapped_DVbased_525x5994I_50Mbps, MXFGC_Framewrapped_DVbased_625x50I_25Mbps, MXFGC_Framewrapped_DVbased_625x50I_50Mbps, MXFGC_Framewrapped_DVbased_720x50P_100Mbps, MXFGC_Framewrapped_DVbased_720x5994P_100Mbps, MXFGC_Framewrapped_DVbased_UndefinedSource, MXFGC_Framewrapped_IECDV_525x5994I_25Mbps, MXFGC_Framewrapped_IECDV_525x5994I_25Mbps_SMPTE322M, MXFGC_Framewrapped_IECDV_625x50I_25Mbps, MXFGC_Framewrapped_IECDV_625x50I_25Mbps_SMPTE322M, MXFGC_Framewrapped_IECDV_UndefinedSource_25Mbps, MXFGC_Framewrapped_MPEGES_VideoStream0_SID, MXFGC_Framewrapped_SMPTE_D10_525x5994I_30Mbps_DefinedTemplate, MXFGC_Framewrapped_SMPTE_D10_525x5994I_30Mbps_ExtendedTemplate, MXFGC_Framewrapped_SMPTE_D10_525x5994I_30Mbps_PictureOnly, MXFGC_Framewrapped_SMPTE_D10_525x5994I_40Mbps_DefinedTemplate, MXFGC_Framewrapped_SMPTE_D10_525x5994I_40Mbps_ExtendedTemplate, MXFGC_Framewrapped_SMPTE_D10_525x5994I_40Mbps_PictureOnly, MXFGC_Framewrapped_SMPTE_D10_525x5994I_50Mbps_DefinedTemplate, MXFGC_Framewrapped_SMPTE_D10_525x5994I_50Mbps_ExtendedTemplate, MXFGC_Framewrapped_SMPTE_D10_525x5994I_50Mbps_PictureOnly, MXFGC_Framewrapped_SMPTE_D10_625x50I_30Mbps_DefinedTemplate, MXFGC_Framewrapped_SMPTE_D10_625x50I_30Mbps_ExtendedTemplate, MXFGC_Framewrapped_SMPTE_D10_625x50I_30Mbps_PictureOnly, MXFGC_Framewrapped_SMPTE_D10_625x50I_40Mbps_DefinedTemplate, MXFGC_Framewrapped_SMPTE_D10_625x50I_40Mbps_ExtendedTemplate, MXFGC_Framewrapped_SMPTE_D10_625x50I_40Mbps_PictureOnly, MXFGC_Framewrapped_SMPTE_D10_625x50I_50Mbps_DefinedTemplate, MXFGC_Framewrapped_SMPTE_D10_625x50I_50Mbps_ExtendedTemplate, MXFGC_Framewrapped_SMPTE_D10_625x50I_50Mbps_PictureOnly, MXFGC_Framewrapped_Uncompressed_525x5994I_720_422, MXFGC_Framewrapped_Uncompressed_525x5994P_960_422, MXFGC_Framewrapped_Uncompressed_625x50I_720_422, MXFGC_Framewrapped_Uncompressed_625x50P_960_422, MXFGC_Framewrapped_VC1, MXFGC_Framewrapped_VC3, MXFGC_Generic_Essence_Multiple_Mappings, MXFGC_Linewrapped_Uncompressed_525x5994I_720_422, MXFGC_Linewrapped_Uncompressed_525x5994P_960_422, MXFGC_Linewrapped_Uncompressed_625x50I_720_422, MXFGC_Linewrapped_Uncompressed_625x50P_960_422, OMF, RIFFWAVE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ContainerDefinitionImpl()`
    `ContainerDefinitionImpl(AUID identification, String name)` Creates and initializes a container definition, which specifies the mechanism used to store essence data.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ContainerDefinition` | `clone()` Create a cloned copy of this interchange object.
    `static int` | `count()`
    `boolean` | `essenceIsIdentified()` Returns whether the essence of the defined container is identified, which specifies when `true` that the container uses the package id to identify the essence data and that the container may contain multiple essence data objects, each identified by a package id.
    `static ContainerDefinition` | `forAUID(AUID identification)`
    `static ContainerDefinition` | `forIdentification(AUID identification)`
    `static ContainerDefinition` | `forName(String containerName)`
    `boolean` | `getEssenceIsIdentified()` Returns whether the essence of the defined container is identified, which specifies when `true` that the container uses the package id to identify the essence data and that the container may contain multiple essence data objects, each identified by a package id.
    `String` | `getWeakTargetReference()` Provides a name that can be used to make a weak object reference to an instance of the implementing class.
    `static Collection<String>` | `inventory()`
    `static boolean` | `registerContainerDefinition(ContainerDefinition definedContainer)`
    `static int` | `registerContainersFromClass(Class<?> classWithContainers)`
    `void` | `setEssenceIsIdentified(Boolean essenceIsIdentified)` Sets whether the essence of the defined container is identified, which specifies when `true` that the container uses the package id to identify the essence data and that the container may contain multiple essence data objects, each identified by a package id.

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

      `getAUID, getDefinitionObjectIdentificationString, getDescription, getLocalizedUID, getName, initializeDefinitionObjectIdentification, initializeDefinitionObjectName, setAUID, setDefinitionObjectIdentificationString, setDescription, setLocalizedUID, setName`

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

      `addApplicationPlugin, appendXMLChildren, clearApplicationPlugins, containsApplicationPlugin, containsApplicationPlugin, countApplicationPlugins, deepEquals, disableGenerationTracking, enableGenerationTracking, equals, getApplicationPlugins, getComment, 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.DefinitionObject

      `getAUID, getDescription, getName, setDescription, setName`

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

    - #### ContainerDefinitionImpl

          public ContainerDefinitionImpl()

    - #### ContainerDefinitionImpl

          public ContainerDefinitionImpl(AUID identification,
                                         String name)
                                  throws NullPointerException

      Creates and initializes a container definition, which specifies the mechanism used to store essence data. A container can be either a kind of file, such as an AAF file, or it can be another mechanism for storing essence data. The essence is idenfified flag is initially set to `false`. Call `setEssenceIsIdentified()` to change this.

      Parameters:
        `identification` - Unique identifier for the new container definition.
        `name` - Display name for new container definition.
      Throws:
        `NullPointerException` - Identification argument is `null`.

  - ### Method Detail

    - #### registerContainersFromClass

          public static final int registerContainersFromClass(Class<?> classWithContainers)
                                                       throws NullPointerException

      Throws:
        `NullPointerException`

    - #### registerContainerDefinition

          public static final boolean registerContainerDefinition(ContainerDefinition definedContainer)
                                                           throws NullPointerException

      Throws:
        `NullPointerException`

    - #### forName

          public static final ContainerDefinition forName(String containerName)
                                                   throws NullPointerException

      Throws:
        `NullPointerException`

    - #### forIdentification

          public static final ContainerDefinition forIdentification(AUID identification)
                                                             throws NullPointerException

      Throws:
        `NullPointerException`

    - #### forAUID

          public static final ContainerDefinition forAUID(AUID identification)
                                                   throws NullPointerException

      Throws:
        `NullPointerException`

    - #### inventory

          public static final Collection<String> inventory()

    - #### count

          public static final int count()

    - #### essenceIsIdentified

          public boolean essenceIsIdentified()
                                      throws PropertyNotPresentException

      Description copied from interface: `ContainerDefinition`

      Returns whether the essence of the defined container is identified, which specifies when `true` that the container uses the package id to identify the essence data and that the container may contain multiple essence data objects, each identified by a package id. This is an optional property.

      Specified by:
        `essenceIsIdentified` in interface `ContainerDefinition`
      Returns:
        Is the essence identified?
      Throws:
        `PropertyNotPresentException` - The optional essence is identified property is not present in the container definition.

    - #### getEssenceIsIdentified

          @MediaProperty(uuid1=50397697,
                         uuid2=768,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,1},
                         definedName="EssenceIsIdentified",
                         typeName="Boolean",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=9217,
                         symbol="EssenceIsIdentified")
          public boolean getEssenceIsIdentified()
                                                                                                                                                                                                                                                                                                                                                                                                     throws PropertyNotPresentException

      Description copied from interface: `ContainerDefinition`

      Returns whether the essence of the defined container is identified, which specifies when `true` that the container uses the package id to identify the essence data and that the container may contain multiple essence data objects, each identified by a package id. This is an optional property.

      Specified by:
        `getEssenceIsIdentified` in interface `ContainerDefinition`
      Returns:
        Is the essence identified?
      Throws:
        `PropertyNotPresentException` - The optional essence is identified property is not present in the container definition.

    - #### setEssenceIsIdentified

          @MediaPropertySetter(value="EssenceIsIdentified")
          public void setEssenceIsIdentified(Boolean essenceIsIdentified)

      Description copied from interface: `ContainerDefinition`

      Sets whether the essence of the defined container is identified, which specifies when `true` that the container uses the package id to identify the essence data and that the container may contain multiple essence data objects, each identified by a package id. To omit this optional property, set its value to `null`.

      Specified by:
        `setEssenceIsIdentified` in interface `ContainerDefinition`
      Parameters:
        `essenceIsIdentified` - Is the essence identified?

    - #### clone

          public ContainerDefinition 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 `ContainerDefinition`
      Specified by:
        `clone` in interface `DefinitionObject`
      Specified by:
        `clone` in interface `InterchangeObject`
      Overrides:
        `clone` in class `DefinitionObjectImpl`
      Returns:
        Cloned copy of this interchange object.

    - #### getWeakTargetReference

          public String getWeakTargetReference()

      Description copied from interface: `WeakReferenceTarget`

      Provides a name that can be used to make a weak object reference to an instance of the implementing class.

      Specified by:
        `getWeakTargetReference` in interface `WeakReferenceTarget`
      Overrides:
        `getWeakTargetReference` in class `DefinitionObjectImpl`
      Returns:
        A name to use to make weak reference to this object.

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