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

tv.amwa.maj.model

## Interface ApplicationPluginObject

- All Superinterfaces:
    ApplicationObject, InterchangeObject, MediaEntity, MetadataObject, WeakReferenceTarget, XMLSerializable
  All Known Implementing Classes:
    ApplicationPluginObjectImpl

      public interface ApplicationPluginObject
      extends ApplicationObject, WeakReferenceTarget, XMLSerializable

  Enables application-specific extensions to be associated with any interchange object.

  See Also:
    `InterchangeObject.getApplicationPlugins()`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `ApplicationPluginObject` | `clone()` Create a cloned copy of this ApplicationPluginObject.
    `String` | `getApplicationEnvironmentID()` Returns the application environment identifier, an Uniform Resource Identifier (RFC 3986) that identifies the application to which the information in this plugin object applies.
    `AUID` | `getApplicationPluginInstanceID()` Returns the immutable identifier of this application metadata plug-in instance.
    `ExtensionScheme` | `getApplicationScheme()` Returns the application metadata scheme contained in this plugin object.
    `void` | `setApplicationEnvironmentID(String applicationEnvironmentID)` Sets the application environment identifier, an Uniform Resource Identifier (RFC 3986) that identifies the application to which the information in this plugin object applies.
    `void` | `setApplicationPluginInstanceID(AUID applicationPluginInstanceID)` Sets the immutable identifier of this application metadata plug-in instance.
    `void` | `setApplicationScheme(ExtensionScheme applicationScheme)` Sets the application metadata scheme contained in this plugin object.

    - ### Methods inherited from interface tv.amwa.maj.model.ApplicationObject

      `clearExtensionProperties, countExtensionProperties, getBaseClass, getExtensionProperty, getExtensionProperty, getExtensionPropertyIDs, getProperties, isExtensionPropertyPresent, isExtensionPropertyPresent, putExtensionProperty, putExtensionProperty, setBaseClass`

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

      `getAUID, getWeakTargetReference`

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

      `appendXMLChildren, getComment`

- - ### Method Detail

    - #### getApplicationPluginInstanceID

          AUID getApplicationPluginInstanceID()

      Returns the immutable identifier of this application metadata plug-in instance.

      Returns:
        Immutable identifier of this application metadata plug-in instance.

    - #### setApplicationPluginInstanceID

          void setApplicationPluginInstanceID(AUID applicationPluginInstanceID)
                                       throws NullPointerException

      Sets the immutable identifier of this application metadata plug-in instance.

      Parameters:
        `applicationPluginInstanceID` - Immutable identifier of this application metadata plug-in instance.
      Throws:
        `NullPointerException` - Cannot set the identifier of this application plugin object using a `null` value.

    - #### getApplicationScheme

          ExtensionScheme getApplicationScheme()

      Returns the application metadata scheme contained in this plugin object. Application metadata schemes are represented by extension schemes.

      Returns:
        Application metadata scheme contained in this plugin object.
      See Also:
        `ApplicationObject#setExensionScheme(tv.amwa.maj.meta.ExtensionScheme)`, `ExtensionScheme.getSchemeID()`, `Preface.getApplicationSchemes()`, `Root.getRootExtensions()`

    - #### setApplicationScheme

          void setApplicationScheme(ExtensionScheme applicationScheme)
                             throws NullPointerException

      Sets the application metadata scheme contained in this plugin object. Application metadata schemes are represented by extension schemes.

      Parameters:
        `applicationScheme` - Identifier of the application metadata scheme contained in this plugin object.
      Throws:
        `NullPointerException` - Cannot set the application scheme using a `null` value.
      See Also:
        `ApplicationObject#setExensionScheme(tv.amwa.maj.meta.ExtensionScheme)`, `ExtensionScheme.getSchemeID()`, `Preface.getApplicationSchemes()`

    - #### getApplicationEnvironmentID

          String getApplicationEnvironmentID()
                                      throws PropertyNotPresentException

      Returns the application environment identifier, an Uniform Resource Identifier (RFC 3986) that identifies the application to which the information in this plugin object applies. This is an optional property.

      Returns:
        Application environment identifier.
      Throws:
        `PropertyNotPresentException` - The optional application environment identifier property is not present for this application plugin.

    - #### setApplicationEnvironmentID

          void setApplicationEnvironmentID(String applicationEnvironmentID)

      Sets the application environment identifier, an Uniform Resource Identifier (RFC 3986) that identifies the application to which the information in this plugin object applies. Set this optional property to `null` to omit it.

      Parameters:
        `applicationEnvironmentID` - Application environment identifier.

    - #### clone

          ApplicationPluginObject clone()

      Create a cloned copy of this ApplicationPluginObject.

      Specified by:
        `clone` in interface `ApplicationObject`
      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `MediaEntity`
      Returns:
        Cloned copy of this ApplicationPluginObject.

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