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

tv.amwa.maj.model

## Interface DataDefinition

- All Superinterfaces:
    DefinitionObject, InterchangeObject, MediaEntity, MetadataObject, WeakReferenceTarget
  All Known Implementing Classes:
    DataDefinitionImpl

      public interface DataDefinition
      extends DefinitionObject

  Specifies a definition for the kind of data that can be stored in a component.

  Section 22.1 of the AAF object specification v1.1 lists the built-in data definitions of the AAF. These can be retrieved by name via the `Warehouse.lookup(Class, String)` method of the MAJ warehouse.

  See Also:
    `DataDefinitionConstant`, `Warehouse.lookup(Class, String)`, `Dictionary.getDataDefinitions()`, `Component.getComponentDataDefinition()`, `OperationDefinition.getOperationDataDefinition()`, `TypeDefinitions.DataDefinitionWeakReference`, `TypeDefinitions.DataDefinitionWeakReferenceSet`, `TypeDefinitions.DataDefinitionWeakReferenceVector`, `TypeDefinitions.DataDefinitionStrongReference`, `TypeDefinitions.DataDefinitionStrongReferenceSet`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `DataDefinition` | `clone()` Create a cloned copy of this data definition.
    `boolean` | `doesDataDefConvertFrom(DataDefinition dataDefinition)` Returns `true` if data represented by this type of data definition can be created by converting from the type represented by the given data definition.
    `boolean` | `doesDataDefConvertTo(DataDefinition dataDefinition)` Returns `true` if the data represented by this data definition can be converted to the data definition given as an argument.
    `boolean` | `isAuxilaryKind()` Returns `true` if the data definition represents Auxiliary data; otherwise `false`.
    `boolean` | `isDataDefOf(DataDefinition dataDefinition)` Returns `true` is this data definition matches the data definition provided in the parameter; otherwise `false`.
    `boolean` | `isDescriptiveMetadataKind()` Returns `true` if the data definition represents data that is descriptive metadata; otherwise `false`.
    `boolean` | `isEdgecodeKind()` Returns `true` if the data definition represents data that is a stream of film edge code values; otherwise `false`.
    `boolean` | `isMatteKind()` Returns `true` in the data definition is a matte, in other words a stream of essence that contains an image of alpha values; otherwise `false`.
    `boolean` | `isPictureKind()` Returns `true` is the data definition is a picture only; otherwise returns `false`.
    `boolean` | `isPictureWithMatteKind()` Returns `true` if the data definition is for a picture with a matte; otherwise returns `false`.
    `boolean` | `isSoundKind()` Returns `true` is a data definition corresponds to sound data; otherwise returns false.
    `boolean` | `isTimecodeKind()` Returns `true` if the data definition represents data that is a stream of tape timecode values; otherwise `false`.

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

    - ### Methods inherited from interface tv.amwa.maj.industry.WeakReferenceTarget

      `getWeakTargetReference`

- - ### Method Detail

    - #### isPictureKind

          @Bool
          boolean isPictureKind()

      Returns `true` is the data definition is a picture only; otherwise returns `false`.

      Returns:
        Does the data definition relate to a picture?
      See Also:
        `DataDefinitionConstant.Picture`

    - #### isMatteKind

          @Bool
          boolean isMatteKind()

      Returns `true` in the data definition is a matte, in other words a stream of essence that contains an image of alpha values; otherwise `false`.

      Returns:
        Is the data definition related to a matte?
      See Also:
        `DataDefinitionConstant.Matte`

    - #### isPictureWithMatteKind

          @Bool
          boolean isPictureWithMatteKind()

      Returns `true` if the data definition is for a picture with a matte; otherwise returns `false`. Pictures like this have both picture data alpha values.

      Returns:
        Does the data definition represent data with both a picture and a matte?
      See Also:
        `DataDefinitionConstant.PictureWithMatte`

    - #### isSoundKind

          @Bool
          boolean isSoundKind()

      Returns `true` is a data definition corresponds to sound data; otherwise returns false.

      Returns:
        Does the data definition represent sound data?
      See Also:
        `DataDefinitionConstant.Sound`

    - #### doesDataDefConvertTo

          @Bool
          boolean doesDataDefConvertTo(DataDefinition dataDefinition)
                                      throws NullPointerException

      Returns `true` if the data represented by this data definition can be converted to the data definition given as an argument. Matching takes place passed on the name property of the data definition.

      Parameters:
        `dataDefinition` - Data definition to compare this data definition with.
      Returns:
        Can data associated with this data definition be converted into data associated by the given data definition?
      Throws:
        `NullPointerException` - The given data definition is `null`.

    - #### isDataDefOf

          @Bool
          boolean isDataDefOf(DataDefinition dataDefinition)
                             throws NullPointerException

      Returns `true` is this data definition matches the data definition provided in the parameter; otherwise `false`. Matching takes place using the name property of the definition.

      Parameters:
        `dataDefinition` - Data definition to compare with.
      Returns:
        Does this data definition match the given one?
      Throws:
        `NullPointerException` - The given data definition is `null`.

    - #### doesDataDefConvertFrom

          @Bool
          boolean doesDataDefConvertFrom(DataDefinition dataDefinition)
                                        throws NullPointerException

      Returns `true` if data represented by this type of data definition can be created by converting from the type represented by the given data definition. Matching takes place based on the `name property` of the given data definition.

      Parameters:
        `dataDefinition` - Data definition of the type of data to be converted from.
      Returns:
        Can data of the type represented by the given data definition be converted to data of the type represented by this data definition?
      Throws:
        `NullPointerException` - Argument is null.

    - #### isEdgecodeKind

          @Bool
          boolean isEdgecodeKind()

      Returns `true` if the data definition represents data that is a stream of film edge code values; otherwise `false`.

      Returns:
        Does this data definition represent data that is a stream of film edgecode values?
      See Also:
        `DataDefinitionConstant.Edgecode`

    - #### isTimecodeKind

          @Bool
          boolean isTimecodeKind()

      Returns `true` if the data definition represents data that is a stream of tape timecode values; otherwise `false`.

      Returns:
        Does the data definition represent data that is a stream of tape timecode values?
      See Also:
        `DataDefinitionConstant.Timecode`

    - #### isAuxilaryKind

          @Bool
          boolean isAuxilaryKind()

      Returns `true` if the data definition represents Auxiliary data; otherwise `false`.

      Returns:
        Does the data definition represent data of an auxiliary kind?
      See Also:
        `DataDefinitionConstant.Auxiliary`

    - #### isDescriptiveMetadataKind

          @Bool
          boolean isDescriptiveMetadataKind()

      Returns `true` if the data definition represents data that is descriptive metadata; otherwise `false`.

      Returns:
        Does the data definition represent data that is descriptive metadata?
      See Also:
        `DataDefinitionConstant.DescriptiveMetadata`

    - #### clone

          DataDefinition clone()

      Create a cloned copy of this data definition.

      Specified by:
        `clone` in interface `DefinitionObject`
      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `MediaEntity`
      Returns:
        Cloned copy of this data definition.

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