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

tv.amwa.maj.model.impl

## Class TaggedValueDefinitionImpl

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

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

      @MediaClass(uuid1=218169601,
                  uuid2=257,
                  uuid3=19456,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="TaggedValueDefinition",
                  description="The TaggedValueDefinition class documents the TaggedValue objects used in the file.",
                  symbol="TaggedValueDefinition")
      public class TaggedValueDefinitionImpl
      extends DefinitionObjectImpl
      implements TaggedValueDefinition, Serializable, Cloneable

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

  See Also:
    `TypeDefinitions.TaggedValueDefinitionStrongReference`, `TypeDefinitions.TaggedValueDefinitionStrongReferenceSet`, Serialized Form

- - ### Field Summary

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

      `ObjectClassPropertyID`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TaggedValueDefinitionImpl()`
    `TaggedValueDefinitionImpl(AUID identification, String name)` Creates and initialize all the fields of a tagged value definition, which documents the `tagged value` objects used in the file.

  - ### Method Summary

    All Methods Instance Methods Concrete 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 interchange object.
    `int` | `countParentProperties()` Returns the number of parent properties of this tagged value definition, which specify which properties specify tagged values of this kind.
    `Set<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 class tv.amwa.maj.model.impl.DefinitionObjectImpl

      `getAUID, getDefinitionObjectIdentificationString, getDescription, getLocalizedUID, getName, getWeakTargetReference, 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`

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

      `getWeakTargetReference`

- - ### Constructor Detail

    - #### TaggedValueDefinitionImpl

          public TaggedValueDefinitionImpl()

    - #### TaggedValueDefinitionImpl

          public TaggedValueDefinitionImpl(AUID identification,
                                           @AAFString
                                           String name)
                                    throws NullPointerException

      Creates and initialize all the fields of a tagged value definition, which documents the `tagged value` objects used in the file.

      Parameters:
        `identification` - Unique identifier for the new tagged value definition object.
        `name` - Display name of the new tagged value definition object.
      Throws:
        `NullPointerException` - One or both of the arguments is/are `null`.

  - ### Method Detail

    - #### addParentProperty

          public void addParentProperty(PropertyDefinition parentProperty)
                                 throws NullPointerException

      Description copied from interface: `TaggedValueDefinition`

      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.

      Specified by:
        `addParentProperty` in interface `TaggedValueDefinition`
      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`.

    - #### countParentProperties

          public int countParentProperties()
                                    throws PropertyNotPresentException

      Description copied from interface: `TaggedValueDefinition`

      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.

      Specified by:
        `countParentProperties` in interface `TaggedValueDefinition`
      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.

    - #### getParentProperties

          public Set<PropertyDefinition> getParentProperties()
                                                      throws PropertyNotPresentException

      Description copied from interface: `TaggedValueDefinition`

      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.

      Specified by:
        `getParentProperties` in interface `TaggedValueDefinition`
      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.

    - #### removeParentProperty

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

      Description copied from interface: `TaggedValueDefinition`

      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.

      Specified by:
        `removeParentProperty` in interface `TaggedValueDefinition`
      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

          public TaggedValueDefinition 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 `DefinitionObject`
      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `TaggedValueDefinition`
      Overrides:
        `clone` in class `DefinitionObjectImpl`
      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.