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

tv.amwa.maj.model

## Interface TaggedValueDefinition

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

      public interface TaggedValueDefinition
      extends DefinitionObject

  Specifies the documentation of tagged values used in a file. The name of the definition is the same as the name of the tagged value it documents. The description of the definition provides the documentation.

  The extended optional parent properties property is available to assist applications but is not a built-in property that is persistent in files.

  See Also:
    `Dictionary.getTaggedValueDefinitions()`, `DefinitionObject.setDescription(String)`, `TypeDefinitions.TaggedValueDefinitionStrongReference`, `TypeDefinitions.TaggedValueDefinitionStrongReferenceSet`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addParentProperty(PropertyDefinition parentProperty)` Add a parent property to the list of parent properties of this tagged value definition, which specify which properties specify tagged values of this kind.
    `TaggedValueDefinition` | `clone()` Create a cloned copy of this tagged value definition.
    `int` | `countParentProperties()` Returns the number of parent properties of this tagged value definition, which specify which properties specify tagged values of this kind.
    `Set<? extends PropertyDefinition>` | `getParentProperties()` Returns the set of parent property definitions of this tagged value definition, which specify which properties specify tagged values of this kind.
    `void` | `removeParentProperty(PropertyDefinition parentProperty)` Removes the given parent property from the list of parent properties of this tagged value definition, which specify which properties specify tagged values of this type.

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

    - #### addParentProperty

          void addParentProperty(PropertyDefinition parentProperty)
                          throws NullPointerException

      Add a parent property to the list of parent properties of this tagged value definition, which specify which properties specify tagged values of this kind. For example, package user comments or component attributes.

      This is an extended optional property. If this property is omitted, a successful call to this method will make it present.

      Parameters:
        `parentProperty` - Parent property to add to the list of parent properties of the tagged value definition.
      Throws:
        `NullPointerException` - The given parent property is `null`.

    - #### getParentProperties

          Set<? extends PropertyDefinition> getParentProperties()
                                                         throws PropertyNotPresentException

      Returns the set of parent property definitions of this tagged value definition, which specify which properties specify tagged values of this kind. For example, package user comments or component attributes. This is an extended optional property.

      Returns:
        Shallow copy of the set of parent property definitions of this tagged value definition.
      Throws:
        `PropertyNotPresentException` - The optional parent properties property is not present in this tagged value definition.

    - #### countParentProperties

          @UInt32
          int countParentProperties()
                                     throws PropertyNotPresentException

      Returns the number of parent properties of this tagged value definition, which specify which properties specify tagged values of this kind. For example, package user comments or component attributes. This is an extended optional property.

      Returns:
        Number of parent properties of this tagged value definition.
      Throws:
        `PropertyNotPresentException` - The optional parent properties property is not present in this tagged value definition.

    - #### removeParentProperty

          void removeParentProperty(PropertyDefinition parentProperty)
                             throws NullPointerException,
                                    NoMoreObjectsException,
                                    PropertyNotPresentException

      Removes the given parent property from the list of parent properties of this tagged value definition, which specify which properties specify tagged values of this type. For example, package user comments or component attributes. This is an extended optional property. Removing the last parent property from the set will omit the property.

      Parameters:
        `parentProperty` - Property definition to remove from the list of parent properties of this tagged value definition.
      Throws:
        `NullPointerException` - The given parent property to remove is not present in the set of parent properties of this tagged value definition.
        `NoMoreObjectsException` - The property definition is not in the set of parent property definitions of this tagged value definition.
        `PropertyNotPresentException` - The optional parent properties property is not present in this tagged value definition.

    - #### clone

          TaggedValueDefinition clone()

      Create a cloned copy of this tagged value definition.

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

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