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

tv.amwa.maj.meta.impl

## Class TypeDefinitionStrongObjectReferenceImpl

- java.lang.Object
- - tv.amwa.maj.meta.impl.MetaDefinitionImpl
  - - tv.amwa.maj.meta.impl.TypeDefinitionImpl
    - - tv.amwa.maj.meta.impl.SingletonTypeDefinitionImpl
      - - tv.amwa.maj.meta.impl.TypeDefinitionObjectReferenceImpl
        - - tv.amwa.maj.meta.impl.TypeDefinitionStrongObjectReferenceImpl

- All Implemented Interfaces:
    Serializable, Cloneable, CommonConstants, MetadataObject, WeakReferenceTarget, XMLSerializable, MetaDefinition, TypeDefinition, TypeDefinitionObjectReference, TypeDefinitionStrongObjectReference, DefinitionType

      @MediaClass(uuid1=218169601,
                  uuid2=517,
                  uuid3=0,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="TypeDefinitionStrongObjectReference",
                  description="The TypeDefinitionStrongObjectReference class defines a property type that defines an object relationship where the target of the strong reference is owned by the object with the property with the TypeDefinitionStrongObjectReference type.",
                  symbol="TypeDefinitionStrongObjectReference")
      public final class TypeDefinitionStrongObjectReferenceImpl
      extends TypeDefinitionObjectReferenceImpl
      implements TypeDefinitionStrongObjectReference, Serializable, Cloneable

  Implements the definition of a property type that defines an object relationship where the target of the strong reference is owned by the object with a property of the TypeDefinitionStrongObjectReference type.

  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class tv.amwa.maj.meta.impl.TypeDefinitionObjectReferenceImpl

      `TypeDefinitionObjectReferenceImpl.ObjectReferenceValue, TypeDefinitionObjectReferenceImpl.UnresolvedReferenceValue`

    - ### Nested classes/interfaces inherited from class tv.amwa.maj.meta.impl.SingletonTypeDefinitionImpl

      `SingletonTypeDefinitionImpl.SingletonMethodBag`

    - ### Nested classes/interfaces inherited from class tv.amwa.maj.meta.impl.TypeDefinitionImpl

      `TypeDefinitionImpl.PropertyValueImpl`

  - ### Field Summary

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

      `AAF_METADICT_NAMESPACE, AAF_METADICT_PREFIX, AAF_XML_NAMESPACE, AAF_XML_PREFIX, ApplicationPluginObjectID, ApplicationPluginsID, MAX_NUM_RGBA_COMPS, MemberOfID, ObjectClassID, ParentClassID, PropertiesID, XMLClassIDAsAttributeName`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TypeDefinitionStrongObjectReferenceImpl(AUID identification, String typeName, ClassDefinition referencedType)` Creates and initializes the strong object reference type definition, which defines a property type that defines an object relationship where the target of the strong reference is owned by the object with the property.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `appendMetadictXML(Node metadict, String namespace, String prefix)` Append an XML representation of this meta definition to the given XML node.
    `TypeDefinitionStrongObjectReference` | `clone()` Create a cloned copy of this meta definition.
    `ClassDefinition` | `getReferencedType()`
    `TypeCategory` | `getTypeCategory()` Returns the type category to which this type definition belongs, which corresponds to its sub interface.
    `static ClassDefinition` | `initializeReferencedType()`
    `String` | `nameToAAFName(String name)`
    `void` | `setReferencedType(ClassDefinition referencedType)`

    - ### Methods inherited from class tv.amwa.maj.meta.impl.TypeDefinitionObjectReferenceImpl

      `createFromBytes, createValue, getLocalReference, getObject, getObjectType, lengthAsBytes, setObject, writeAsBytes`

    - ### Methods inherited from class tv.amwa.maj.meta.impl.SingletonTypeDefinitionImpl

      `setPropertyValue`

    - ### Methods inherited from class tv.amwa.maj.meta.impl.TypeDefinitionImpl

      `getNamespace, getPrefix, getPropertyValue, initalizeTypeNameMap, resolveReferences, writeAsStructuredStorageBytes`

    - ### Methods inherited from class tv.amwa.maj.meta.impl.MetaDefinitionImpl

      `aafNameToName, appendXMLChildren, deepEquals, equals, getAAFNamesInUse, getAliases, getAUID, getComment, getDescription, getIdentification, getName, getSymbol, getWeakTargetReference, hashCode, initializeMetaDefinitionIdentification, initializeMetaDefinitionName, setAAFNamesInUse, setAliases, setDescription, setIdentification, setName, setNamespace, setPrefix, setSymbol, toString`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface tv.amwa.maj.meta.TypeDefinitionObjectReference

      `createValue, getObject, getObjectType, setObject`

    - ### Methods inherited from interface tv.amwa.maj.meta.TypeDefinition

      `createFromBytes, getPropertyValue, lengthAsBytes, resolveReferences, setPropertyValue, writeAsBytes, writeAsStructuredStorageBytes`

    - ### Methods inherited from interface tv.amwa.maj.meta.MetaDefinition

      `deepEquals, equals, getAAFNamesInUse, getAliases, getAUID, getDescription, getName, getNamespace, getPrefix, getSymbol, hashCode, setAAFNamesInUse, setDescription, setName, setNamespace, setPrefix, setSymbol, toString`

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

      `getWeakTargetReference`

    - ### Methods inherited from interface tv.amwa.maj.io.xml.XMLSerializable

      `appendXMLChildren, getComment`

- - ### Constructor Detail

    - #### TypeDefinitionStrongObjectReferenceImpl

          public TypeDefinitionStrongObjectReferenceImpl(AUID identification,
                                                         @AAFString
                                                         String typeName,
                                                         ClassDefinition referencedType)
                                                  throws NullPointerException

      Creates and initializes the strong object reference type definition, which defines a property type that defines an object relationship where the target of the strong reference is owned by the object with the property. An object can be the target of only one strong reference.

      Creating new and unregistered type definitions is not recommended as this may cause interoperability issues with other systems. The official registry of type definitions is available from SMPTE at SMPTE Metadata Registries And Related Items. The full range of data types documented in the AAF 1.1 object specification can be accessed by name and identification using either `Warehouse.lookForType(String)` or `Warehouse.lookForType(tv.amwa.maj.record.AUID)` respectively.

      Parameters:
        `identification` - AUID to be used to identify this type.
        `typeName` - Friendly name of the type definition.
        `referencedType` - Class definition of objects that it is permissable for this type of object reference to reference.
      Throws:
        `NullPointerException` - The identification and/or referenced type is/are `null`.

  - ### Method Detail

    - #### getReferencedType

          @MediaProperty(uuid1=100729095,
                         uuid2=2304,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="ReferencedType",
                         aliases="StrongReferencedType",
                         typeName="ClassDefinitionWeakReference",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=17,
                         symbol="ReferencedType")
          public final ClassDefinition getReferencedType()

    - #### setReferencedType

          @MediaPropertySetter(value="ReferencedType")
          public void setReferencedType(ClassDefinition referencedType)

    - #### initializeReferencedType

          public static final ClassDefinition initializeReferencedType()

    - #### getTypeCategory

          public final TypeCategory getTypeCategory()

      Description copied from interface: `TypeDefinition`

      Returns the type category to which this type definition belongs, which corresponds to its sub interface. For example, TypeCategory.Int is returned for a `TypeDefinitionInteger`.

      Specified by:
        `getTypeCategory` in interface `TypeDefinition`
      Specified by:
        `getTypeCategory` in class `TypeDefinitionImpl`
      Returns:
        Type category to which the type definition belongs.
      See Also:
        `TypeCategory`

    - #### nameToAAFName

          public String nameToAAFName(String name)

      Overrides:
        `nameToAAFName` in class `TypeDefinitionImpl`

    - #### appendMetadictXML

          public void appendMetadictXML(Node metadict,
                                        String namespace,
                                        String prefix)

      Description copied from interface: `MetaDefinition`

      Append an XML representation of this meta definition to the given XML node.

      Specified by:
        `appendMetadictXML` in interface `MetaDefinition`
      Overrides:
        `appendMetadictXML` in class `MetaDefinitionImpl`
      Parameters:
        `metadict` - Meta dictionary node to append a description of this node to.
      See Also:
        `CommonConstants.AAF_METADICT_NAMESPACE`

    - #### clone

          public TypeDefinitionStrongObjectReference clone()

      Description copied from interface: `MetaDefinition`

      Create a cloned copy of this meta definition.

      Specified by:
        `clone` in interface `MetaDefinition`
      Specified by:
        `clone` in interface `TypeDefinition`
      Specified by:
        `clone` in interface `TypeDefinitionObjectReference`
      Specified by:
        `clone` in interface `TypeDefinitionStrongObjectReference`
      Overrides:
        `clone` in class `TypeDefinitionObjectReferenceImpl`
      Returns:
        Cloned copy of this meta definition.

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