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

tv.amwa.maj.model.impl

## Class PluginDefinitionImpl

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

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

      @MediaClass(uuid1=218169601,
                  uuid2=257,
                  uuid3=7680,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="PluginDefinition",
                  description="The PluginDefinition class identifies code objects that provide an implementation for a DefinitionObject.",
                  symbol="PluginDefinition")
      public class PluginDefinitionImpl
      extends DefinitionObjectImpl
      implements PluginDefinition, Serializable, Cloneable

  Implements the definition of code objects that provide an implementation for a definition, such as a codec definition, or for a meta definition, such as a class definition.

  See Also:
    `TypeDefinitions.PluginDefinitionWeakReference`, `TypeDefinitions.PluginDefinitionStrongReference`, `TypeDefinitions.PluginDefinitionStrongReferenceSet`, `TypeDefinitions.PluginDefinitionWeakReferenceSet`, Serialized Form

- - ### Field Summary

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

      `ObjectClassPropertyID`

    - ### Fields inherited from interface tv.amwa.maj.model.PluginDefinition

      `ACCELERATOR_DEFAULT, AUTHENTICATION_DEFAULT, SOFTWAREONLY_DEFAULT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PluginDefinitionImpl()`
    `PluginDefinitionImpl(AUID identification, String name, AUID pluginCategory, VersionType versionNumber, AUID definitionObject)` Creates and initializes a plugin definition, which is used to identify code objects that provide an implementation for a definition object such as codec definition, or for a `meta definition` such as a class definition.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `appendPluginLocator(Locator pluginLocator)` Append a locator to the list of plugin locators of this plugin definition, which specify an ordered list of locations that provide access to the defined plugin's implementation.
    `void` | `clearPluginLocators()` Clear the list of locators to this plugin definition, omitting this optional property.
    `PluginDefinition` | `clone()` Create a cloned copy of this interchange object.
    `int` | `countPluginLocators()` Returns the number of locators in the list of plugin locators of this plugin definition, which specify an ordered list locations that provide access to the defined plugin's implementation.
    `AUID` | `getCategoryClass()` Returns the category of the defined plugin.
    `String` | `getDeviceManufacturerName()` Returns the plugin manufacturer name for the defined plugin, which specifies a string that can be used to identify the plugin manufacturer to the user.
    `AUID` | `getEngine()` Returns the software engine identifier that identifies the software subsystem used for essence management and playback for the defined plugin.
    `VersionType` | `getEngineMaximumVersion()` Returns the maximum acceptable software engine version of the defined plugin, which specifies the maximum version of the engine for which this plugin will function.
    `VersionType` | `getEngineMinimumVersion()` Returns the minimum acceptable software engine version of the defined plugin, which specifies the minimum version of the engine for which this plugin will function.
    `String` | `getEngineString()`
    `VersionType[]` | `getEngineVersionRange()` Returns the minimum and maximum software engine versions of the defined plugin, which specify the minimum and maximum versions of the engine for which this plugin will function.
    `AUID` | `getImplementedClass()` Returns the identifier of the implemented class of teh defined plugin.This property specifies the AUID for the class definition of the definition or meta definition that the defined plugin provides an implementation for.
    `String` | `getImplementedClassString()`
    `boolean` | `getIsAccelerated()` Returns `true` if the defined plugin is capable of running with a hardware accelerator; otherwise `false`.
    `boolean` | `getIsSoftwareOnly()` Returns `true` if the defined plugin is capable of running in a software-only environment; otherwise `false`.
    `AUID` | `getManufacturerID()` Returns an AUID that identifies the manufacturer of the defined plugin.
    `String` | `getManufacturerIDString()`
    `NetworkLocator` | `getManufacturerInfo()` Returns a network locator pointing to manufacturer information for the defined plugin, which provides a link to a web page containing information about the manufacturer.
    `String` | `getMaxEngineVersionString()`
    `String` | `getMaxPlatformVersionString()`
    `String` | `getMaxPluginAPIString()`
    `String` | `getMinEngineVersionString()`
    `String` | `getMinPlatformVersionString()`
    `String` | `getMinPluginAPIString()`
    `VersionType` | `getPlatformMaximumVersion()` Returns the maximum acceptable platform version for the defined plugin, which specifies the maximum version of the platform on which this plugin will function.
    `VersionType` | `getPlatformMinimumVersion()` Returns the minimum acceptable platform version for the defined plugin, which specifies the minimum version of the platform on which this plugin will function.
    `VersionType[]` | `getPlatformVersionRange()` Returns the minimum and maximum platform version properties of the defined plugin, which specify the minimum and maximum versions of the platform for which the plugin will function.
    `AUID` | `getPluginAPI()` Returns the identifier for the manufacturer's interface that is supported by the defined plugin.
    `VersionType` | `getPluginAPIMaximumVersion()` Returns the maximum acceptable plugin API version supporting the defined plugin, which is the maximum version of the plugin API for which this plugin will function.
    `VersionType` | `getPluginAPIMinimumVersion()` Returns the minimum acceptable plugin API version supporting the defined plugin, which is the minimum version of the plugin API for which this plugin will function.
    `String` | `getPluginAPIString()`
    `VersionType[]` | `getPluginAPIVersionRange()` Returns the minimum and maximum plugin API version properties of the defined plugin, which are the minimum and maximum versions of the plugin API for which this plugin will function.
    `String` | `getPluginCategoryString()`
    `Locator` | `getPluginLocatorAt(int index)` Returns the locator at the given index from the list of locators of this plugin descriptor, which specify an ordered list of locations that provide access to the defined plugin's implementation.
    `List<Locator>` | `getPluginLocators()` Returns the list of locators of the plugin definition, which specify an ordered list of locations that provide access to the defined plugin's implementation.
    `AUID` | `getPluginPlatform()` Returns the hardware platform identifier of the defined plugin, which identifies the platform by both its hardware platform and operating system.
    `String` | `getPluginPlatformString()`
    `VersionType` | `getPluginVersion()` Returns the plugin version of the defined plugin.
    `String` | `getPluginVersionPersist()`
    `String` | `getPluginVersionString()` Returns the plugin version string of the defined plugin, which specifies a string that can be used to identify the plugin version to the user.
    `boolean` | `getSupportsAuthentication()` Returns `true` if the defined plugin is capable of supporting authentication; otherwise `false`.
    `static AUID` | `initializePluginCategory()`
    `static VersionType` | `initializePluginVersion()`
    `void` | `insertPluginLocatorAt(int index, Locator pluginLocator)` Insert a locator at the given index into the list of locators of this plugin definition, which specify an ordered list of locations that provide access to the defined plugin's implementation.
    `boolean` | `isAccelerated()` Returns `true` if the defined plugin is capable of running with a hardware accelerator; otherwise `false`.
    `boolean` | `isSoftwareOnly()` Returns `true` if the defined plugin is capable of running in a software-only environment; otherwise `false`.
    `void` | `prependPluginLocator(Locator pluginLocator)` Prepend a locator to the list of plugin locators of this plugin definition, which specify an ordered list of locations that provide access to the defined plugin's implementation.
    `void` | `removePluginLocatorAt(int index)` Remove the locator at the given index from the list of locators of the plugin definition, which specify an ordered list of locations that provide access to the defined plugin's implementation.
    `void` | `setCategoryClass(AUID categoryClass)` Sets the category of the defined plugin.
    `void` | `setDeviceManufacturerName(String deviceManufacturerName)` Set the plugin manufacturer name for the defined plugin, which specifies a string that can be used to identify the plugin manufacturer to the user.
    `void` | `setEngine(AUID engine)` Sets the software engine identifier that identifies the software subsystem used for essence management and playback for the defined plugin.
    `void` | `setEngineMaximumVersion(VersionType maxEngineVersion)` Sets the maximum engine version property of the defined plugin, which specifies the maximum version of the engine for which this plugin will function.
    `void` | `setEngineMinimumVersion(VersionType minVersion)` Sets the minimum engine version property of the defined plugin, which specifies the minimum version of the engine for which this plugin will function.
    `void` | `setEngineString(String engine)`
    `void` | `setImplementedClass(AUID implementedClass)` Sets the identifier of the implemented class of the defined plugin.
    `void` | `setImplementedClassLegacy(AUID implementedClass)`
    `void` | `setImplementedClassString(String implementedClass)`
    `void` | `setIsAccelerated(Boolean isAccelerated)` Set to `true` if the defined plugin is capable of running with a hardware accelerator; otherwise `false`.
    `void` | `setIsSoftwareOnly(Boolean isSoftwareOnly)` Set to `true` if the defined plugin is capable of running in a software-only environment; otherwise `false`.
    `void` | `setManufacturerID(AUID manufacturerId)` Sets the AUID that identifies the manufacturer of the defined plugin.
    `void` | `setManufacturerIDString(String manufacturerID)`
    `void` | `setManufacturerInfo(NetworkLocator manufacturerInfo)` Set a network locator pointing to the location of manufacturer information for the defined plugin.
    `void` | `setMaxEngineVersionString(String maxEngineVersion)`
    `void` | `setMaxPlatformVersionString(String maxPlatformVersion)`
    `void` | `setMaxPluginAPIString(String maxPluginAPI)`
    `void` | `setMinEngineVersionString(String minEngineVersionString)`
    `void` | `setMinPlatformVersionString(String minPlatformVersion)`
    `void` | `setMinPluginAPIString(String minPluginAPI)`
    `void` | `setPlatformMaximumVersion(VersionType maxVersion)` Sets the maximum platform version property of the defined plugin, which specifies the maximum version of the platform for which the plugin will function.
    `void` | `setPlatformMinimumVersion(VersionType minVersion)` Sets the minimum platform version property of the defined plugin, which specifies the minimum version of the platform for which the plugin will function.
    `void` | `setPluginAPI(AUID pluginAPI)` Sets the identifier for the manufacturer's interface that is supported by the defined plugin.
    `void` | `setPluginAPIMaximumVersion(VersionType maxVersion)` Sets the maximum plugin API version property of the defined plugin, which specifies the maximum version number of the specified plugin interfaces that the plugin supports.
    `void` | `setPluginAPIMinimumVersion(VersionType minVersion)` Sets the minimum plugin API version property of the defined plugin, which specifies the minimum version number of the specified plugin interfaces that the plugin supports.
    `void` | `setPluginAPIString(String pluginAPI)`
    `void` | `setPluginCategoryString(String pluginCategory)`
    `void` | `setPluginPlatform(AUID pluginPlatform)` Sets the hardware platform identifier of the defined plugin, which identifies the platform by both the hardware platform and operating system.
    `void` | `setPluginPlatformString(String pluginPlatform)`
    `void` | `setPluginVersion(VersionType version)` Sets the plugin version of the defined plugin.
    `void` | `setPluginVersionPersist(String pluginVersion)`
    `void` | `setPluginVersionString(String pluginVersionString)` Sets the plugin version string of this defined plugin, which specifies a string that can be used to identify the plugin version to the user.
    `void` | `setSupportsAuthentication(Boolean supportsAuthentication)` Set to `true` if the defined plugin defined is capable of supporting authentication; otherwise `false`.
    `boolean` | `supportsAuthentication()` Returns `true` if the defined plugin is capable of supporting authentication; otherwise `false`.

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

    - #### PluginDefinitionImpl

          public PluginDefinitionImpl()

    - #### PluginDefinitionImpl

          public PluginDefinitionImpl(AUID identification,
                                      @AAFString
                                      String name,
                                      AUID pluginCategory,
                                      VersionType versionNumber,
                                      AUID definitionObject)
                               throws NullPointerException

      Creates and initializes a plugin definition, which is used to identify code objects that provide an implementation for a definition object such as codec definition, or for a `meta definition` such as a class definition.

      The plugin category for the plugin can be set using one of the categories defined in the toolkit through the static values of interface `PluginCategoryType`.

      Parameters:
        `identification` - Unique identifier for the new plugin definition.
        `name` - Display name for the new plugin definition.
        `pluginCategory` - Kind of plugin.
        `versionNumber` - Version of the plugin.
        `definitionObject` - Unique identifier of the class definition or meta definition that this definition object provides an implementation of.
      Throws:
        `NullPointerException` - One or more of the arguments is `null` and all the arguments are required in this implementation.

  - ### Method Detail

    - #### getCategoryClass

          @MediaProperty(uuid1=85985537,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="PluginCategory",
                         typeName="PluginCategoryType",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=8707,
                         symbol="PluginCategory")
          public AUID getCategoryClass()

      Description copied from interface: `PluginDefinition`

      Returns the category of the defined plugin. The AAF built in categories are:

      - `PluginCategoryType.Effect`
      - `PluginCategoryType.Codec`
      - `PluginCategoryType.Interpolation`
      Specified by:
        `getCategoryClass` in interface `PluginDefinition`
      Returns:
        Kind of plugin defined.
      See Also:
        `PluginCategoryType`, `TypeDefinitions.PluginCategoryType`

    - #### setCategoryClass

          @MediaPropertySetter(value="PluginCategory")
          public void setCategoryClass(AUID categoryClass)
                                                                             throws NullPointerException

      Description copied from interface: `PluginDefinition`

      Sets the category of the defined plugin. The AAF built in categories are:

      - `PluginCategoryType.Effect`
      - `PluginCategoryType.Codec`
      - `PluginCategoryType.Interpolation`
      Specified by:
        `setCategoryClass` in interface `PluginDefinition`
      Parameters:
        `categoryClass` - Kind of plugin defined.
      Throws:
        `NullPointerException` - The given plugin category is `null`.
      See Also:
        `PluginCategoryType`, `TypeDefinitions.PluginCategoryType`

    - #### initializePluginCategory

          public static final AUID initializePluginCategory()

    - #### getImplementedClass

          @MediaProperty(uuid1=85985551,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="ImplementedClass",
                         aliases={"DefinitionObject","PluginDefinitionDefinitionObject"},
                         typeName="AUID",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8726,
                         symbol="ImplementedClass")
          public AUID getImplementedClass()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the identifier of the implemented class of teh defined plugin.This property specifies the AUID for the class definition of the definition or meta definition that the defined plugin provides an implementation for.

      As of AAF version 1.1, this property must be specified. This was an optional property in version 1.0.

      Specified by:
        `getImplementedClass` in interface `PluginDefinition`
      Returns:
        Implemented class of the defined plugin.
      Throws:
        `PropertyNotPresentException` - Although the definition object should be specified, this was not a required property in older versions of the AAF specification and is not present for this plugin definition.

    - #### setImplementedClassLegacy

          @MediaPropertySetter(value="ImplementedClass")
          public void setImplementedClassLegacy(AUID implementedClass)

    - #### setImplementedClass

          public void setImplementedClass(AUID implementedClass)
                                   throws NullPointerException

      Description copied from interface: `PluginDefinition`

      Sets the identifier of the implemented class of the defined plugin. This property specifies the AUID for the class definition of the definition or meta definition that the defined plugin provides an implementation for.

      As of AAF version 1.1, this property must be specified. This was an optional property in version 1.0.

      Specified by:
        `setImplementedClass` in interface `PluginDefinition`
      Parameters:
        `implementedClass` - Implemented class of the defined plugin.
      Throws:
        `NullPointerException` - The given definition object identifier is `null`.
      See Also:
        `PluginDefinition.getCategoryClass()`

    - #### getEngine

          @MediaProperty(uuid1=85985541,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="Engine",
                         typeName="AUID",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8716,
                         symbol="Engine")
          public AUID getEngine()
                                                                                                                                                                                                                                                                                                                                                      throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the software engine identifier that identifies the software subsystem used for essence management and playback for the defined plugin. This is an optional property.

      Specified by:
        `getEngine` in interface `PluginDefinition`
      Returns:
        Software engine identifier for the defined plugin.
      Throws:
        `PropertyNotPresentException` - The optional engine property is not present in this plugin definition.
      See Also:
        `PluginIdentifiers.Engine_None`

    - #### setEngine

          @MediaPropertySetter(value="Engine")
          public void setEngine(AUID engine)

      Description copied from interface: `PluginDefinition`

      Sets the software engine identifier that identifies the software subsystem used for essence management and playback for the defined plugin. Set this optional property to `null` to omit it.

      Specified by:
        `setEngine` in interface `PluginDefinition`
      Parameters:
        `engine` - Software engine identifier for the defined plugin.
      See Also:
        `PluginIdentifiers.Engine_None`

    - #### getEngineVersionRange

          public VersionType[] getEngineVersionRange()
                                              throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the minimum and maximum software engine versions of the defined plugin, which specify the minimum and maximum versions of the engine for which this plugin will function. The engine version range properties are optional.

      The value returned is an array containing two version numbers with the value at index 0 being the minimum version number and the value at index 1 being the maximum.

      Specified by:
        `getEngineVersionRange` in interface `PluginDefinition`
      Returns:
        Array containing minimum and maximum engine versions for the defined plugin.
      Throws:
        `PropertyNotPresentException` - The optional engine version range property is not fully specified in this plugin definition.
      See Also:
        `PluginDefinition.getEngine()`

    - #### getEngineMinimumVersion

          @MediaProperty(uuid1=85985542,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="MinEngineVersion",
                         typeName="VersionType",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8717,
                         symbol="MinEngineVersion")
          public VersionType getEngineMinimumVersion()
                                                                                                                                                                                                                                                                                                                                                                                                      throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the minimum acceptable software engine version of the defined plugin, which specifies the minimum version of the engine for which this plugin will function. The minimum engine version property is optional.

      Specified by:
        `getEngineMinimumVersion` in interface `PluginDefinition`
      Returns:
        Minimum acceptable software engine versions of the defined plugin.
      Throws:
        `PropertyNotPresentException` - The optional engine minimum version property is not present for this plugin definition.
      See Also:
        `PluginDefinition.getEngine()`, `PluginDefinition.getEngineVersionRange()`, `PluginDefinition.getEngineMaximumVersion()`

    - #### setEngineMinimumVersion

          @MediaPropertySetter(value="MinEngineVersion")
          public void setEngineMinimumVersion(VersionType minVersion)

      Description copied from interface: `PluginDefinition`

      Sets the minimum engine version property of the defined plugin, which specifies the minimum version of the engine for which this plugin will function. Set this optional property to `null` to omit it.

      Specified by:
        `setEngineMinimumVersion` in interface `PluginDefinition`
      Parameters:
        `minVersion` - Minimum engine version for the defined plugin.

    - #### getEngineMaximumVersion

          @MediaProperty(uuid1=85985543,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="MaxEngineVersion",
                         typeName="VersionType",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8718,
                         symbol="MaxEngineVersion")
          public VersionType getEngineMaximumVersion()
                                                                                                                                                                                                                                                                                                                                                                                                      throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the maximum acceptable software engine version of the defined plugin, which specifies the maximum version of the engine for which this plugin will function. The maximum engine version property is optional.

      Specified by:
        `getEngineMaximumVersion` in interface `PluginDefinition`
      Returns:
        Maximum acceptable software engine versions of the defined plugin.
      Throws:
        `PropertyNotPresentException` - The optional engine maximum version property is not present for this plugin definition.
      See Also:
        `PluginDefinition.getEngine()`, `PluginDefinition.getEngineVersionRange()`, `PluginDefinition.getEngineMinimumVersion()`

    - #### setEngineMaximumVersion

          @MediaPropertySetter(value="MaxEngineVersion")
          public void setEngineMaximumVersion(VersionType maxEngineVersion)

      Description copied from interface: `PluginDefinition`

      Sets the maximum engine version property of the defined plugin, which specifies the maximum version of the engine for which this plugin will function. Set this optional property to `null` to omit it.

      Specified by:
        `setEngineMaximumVersion` in interface `PluginDefinition`
      Parameters:
        `maxEngineVersion` - Maximum engine version for the defined plugin.

    - #### getPluginPlatform

          @MediaProperty(uuid1=85985538,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="PluginPlatform",
                         aliases={"Platform","PluginDefinitionPlatform"},
                         typeName="AUID",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8713,
                         symbol="PluginPlatform")
          public AUID getPluginPlatform()
                                                                                                                                                                                                                                                                                                                                                                                                                                              throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the hardware platform identifier of the defined plugin, which identifies the platform by both its hardware platform and operating system. This is an optional property.

      Specified by:
        `getPluginPlatform` in interface `PluginDefinition`
      Returns:
        Hardware platform identifier for the defined plugin.
      Throws:
        `PropertyNotPresentException` - The optional hardware platform property is not present in this plugin definition.
      See Also:
        `PluginIdentifiers.Platform_Independent`

    - #### setPluginPlatform

          @MediaPropertySetter(value="PluginPlatform")
          public void setPluginPlatform(AUID pluginPlatform)

      Description copied from interface: `PluginDefinition`

      Sets the hardware platform identifier of the defined plugin, which identifies the platform by both the hardware platform and operating system. Set this optional property to `null` to omit it.

      Specified by:
        `setPluginPlatform` in interface `PluginDefinition`
      Parameters:
        `pluginPlatform` - Hardware platform identifier for the defined plugin.
      See Also:
        `PluginIdentifiers.Platform_Independent`

    - #### getPluginLocators

          @MediaProperty(uuid1=85985549,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="PluginLocators",
                         aliases="Locators",
                         typeName="LocatorStrongReferenceVector",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8724,
                         symbol="PluginLocators")
          public List<Locator> getPluginLocators()
                                                                                                                                                                                                                                                                                                                                                                                                                                                  throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the list of locators of the plugin definition, which specify an ordered list of locations that provide access to the defined plugin's implementation. This is an optional property.

      Specified by:
        `getPluginLocators` in interface `PluginDefinition`
      Returns:
        Shallow copy of the list of the locators for this plugin definition.
      Throws:
        `PropertyNotPresentException` - No locators for the plugin implementation are present in this plugin definition.
      See Also:
        `TypeDefinitions.LocatorStrongReferenceVector`

    - #### getPluginLocatorAt

          @MediaListGetAt(value="PluginLocators")
          public Locator getPluginLocatorAt(int index)
                                                                             throws IndexOutOfBoundsException

      Description copied from interface: `PluginDefinition`

      Returns the locator at the given index from the list of locators of this plugin descriptor, which specify an ordered list of locations that provide access to the defined plugin's implementation.

      Specified by:
        `getPluginLocatorAt` in interface `PluginDefinition`
      Parameters:
        `index` - Index of the locator to retrieve from the list of locators.
      Returns:
        Locator at the given index in the list of locators of the plugin descriptor.
      Throws:
        `IndexOutOfBoundsException` - The given index is outside the acceptable range for the current list of locators.

    - #### appendPluginLocator

          @MediaListAppend(value="PluginLocators")
          public void appendPluginLocator(Locator pluginLocator)
                                                                            throws NullPointerException

      Description copied from interface: `PluginDefinition`

      Append a locator to the list of plugin locators of this plugin definition, which specify an ordered list of locations that provide access to the defined plugin's implementation. Use this method to add a locator to be scanned last when searching for the plugin's implementation. The locator list is an optional property that will be made present by calling this method if it is currently omitted.

      Specified by:
        `appendPluginLocator` in interface `PluginDefinition`
      Parameters:
        `pluginLocator` - Locator of the plugin to append to the list of locators of this plugin definition.
      Throws:
        `NullPointerException` - The given locator to append is `null`.

    - #### countPluginLocators

          @MediaPropertyCount(value="PluginLocators")
          public int countPluginLocators()

      Description copied from interface: `PluginDefinition`

      Returns the number of locators in the list of plugin locators of this plugin definition, which specify an ordered list locations that provide access to the defined plugin's implementation. The number of locators may be zero if the plugin is in the current file, which is also when this optional property is not present.

      Specified by:
        `countPluginLocators` in interface `PluginDefinition`
      Returns:
        Number of locators of this plugin definition.

    - #### prependPluginLocator

          @MediaListPrepend(value="PluginLocators")
          public void prependPluginLocator(Locator pluginLocator)
                                                                              throws NullPointerException

      Description copied from interface: `PluginDefinition`

      Prepend a locator to the list of plugin locators of this plugin definition, which specify an ordered list of locations that provide access to the defined plugin's implementation. Use this method to add a locator to be scanned first when searching for the plugin's implementation. The locator list is an optional property that will be made present by calling this method if it is currently omitted.

      Specified by:
        `prependPluginLocator` in interface `PluginDefinition`
      Parameters:
        `pluginLocator` - Locator to prepend to the list of plugin locators of the plugin definition.
      Throws:
        `NullPointerException` - The given locator to prepend is `null`.

    - #### insertPluginLocatorAt

          @MediaListInsertAt(value="PluginLocators")
          public void insertPluginLocatorAt(int index,
                                                                                       Locator pluginLocator)
                                                                                throws NullPointerException,
                                                                                       IndexOutOfBoundsException

      Description copied from interface: `PluginDefinition`

      Insert a locator at the given index into the list of locators of this plugin definition, which specify an ordered list of locations that provide access to the defined plugin's implementation. Locators already existing at the named and higher indices will be moved up to the next higher index to accommodate to inserted item. The locator list is an optional property that may be made present by calling this method with an index of 0.

      Specified by:
        `insertPluginLocatorAt` in interface `PluginDefinition`
      Parameters:
        `index` - Index where the locator should be inserted.
        `pluginLocator` - Locator to insert into the list of plugin locators of this plugin definition.
      Throws:
        `NullPointerException` - The given locator to insert is `null`.
        `IndexOutOfBoundsException` - The given index is outside the acceptable range for the current list of locators.

    - #### removePluginLocatorAt

          @MediaListRemoveAt(value="PluginLocators")
          public void removePluginLocatorAt(int index)
                                                                                throws IndexOutOfBoundsException

      Description copied from interface: `PluginDefinition`

      Remove the locator at the given index from the list of locators of the plugin definition, which specify an ordered list of locations that provide access to the defined plugin's implementation.

      Specified by:
        `removePluginLocatorAt` in interface `PluginDefinition`
      Parameters:
        `index` - Index of locator to remove from the list of locators of the plugin definition.
      Throws:
        `IndexOutOfBoundsException` - The given index is outside the acceptable range for the current list of locators.

    - #### clearPluginLocators

          @MediaPropertyClear(value="PluginLocators")
          public void clearPluginLocators()

      Description copied from interface: `PluginDefinition`

      Clear the list of locators to this plugin definition, omitting this optional property.

      Specified by:
        `clearPluginLocators` in interface `PluginDefinition`

    - #### getManufacturerID

          @MediaProperty(uuid1=17432833,
                         uuid2=768,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="ManufacturerID",
                         aliases="PluginDefinitionManufacturerID",
                         typeName="AUID",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8712,
                         symbol="ManufacturerID")
          public AUID getManufacturerID()
                                                                                                                                                                                                                                                                                                                                                                                                                                         throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns an AUID that identifies the manufacturer of the defined plugin. This is an optional property.

      Specified by:
        `getManufacturerID` in interface `PluginDefinition`
      Returns:
        Manufacturer id of the defined plugin.
      Throws:
        `PropertyNotPresentException` - The optional manufacturer id property is not present in this plugin definition.

    - #### setManufacturerID

          @MediaPropertySetter(value="ManufacturerID")
          public void setManufacturerID(AUID manufacturerId)

      Description copied from interface: `PluginDefinition`

      Sets the AUID that identifies the manufacturer of the defined plugin. Set this optional property to `null` to omit it.

      Specified by:
        `setManufacturerID` in interface `PluginDefinition`
      Parameters:
        `manufacturerId` - Manufacturer id for the defined plugin.

    - #### getManufacturerInfo

          @MediaProperty(uuid1=100729092,
                         uuid2=523,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="ManufacturerInfo",
                         typeName="NetworkLocatorStrongReference",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8711,
                         symbol="ManufacturerInfo")
          public NetworkLocator getManufacturerInfo()
                                                                                                                                                                                                                                                                                                                                                                                                                          throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns a network locator pointing to manufacturer information for the defined plugin, which provides a link to a web page containing information about the manufacturer.

      Specified by:
        `getManufacturerInfo` in interface `PluginDefinition`
      Returns:
        Link to manufacturer information about the manufacturer of this plugin definition.
      Throws:
        `PropertyNotPresentException` - The optional manufacturer information property is not present for this plugin definition.

    - #### setManufacturerInfo

          @MediaPropertySetter(value="ManufacturerInfo")
          public void setManufacturerInfo(NetworkLocator manufacturerInfo)
                                                                                  throws NullPointerException

      Description copied from interface: `PluginDefinition`

      Set a network locator pointing to the location of manufacturer information for the defined plugin. A successful call to this method will result in any existing manufacturer information being replaced.

      Specified by:
        `setManufacturerInfo` in interface `PluginDefinition`
      Parameters:
        `manufacturerInfo` - Network locator for pointing to manufacturer information for the definition.
      Throws:
        `NullPointerException`

    - #### getPlatformVersionRange

          public VersionType[] getPlatformVersionRange()
                                                throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the minimum and maximum platform version properties of the defined plugin, which specify the minimum and maximum versions of the platform for which the plugin will function. The platform version range properties are optional.

      The value returned is an array containing two version numbers with the value at index 0 being the minimum version number and the value at index 1 being the maximum.

      Specified by:
        `getPlatformVersionRange` in interface `PluginDefinition`
      Returns:
        Array containing the minimum and maximum platform versions of the defined plugin.
      Throws:
        `PropertyNotPresentException` - The optional platform version range is not fully specified in this plugin definition.
      See Also:
        `PluginDefinition.getPlatformMinimumVersion()`, `PluginDefinition.getPlatformMaximumVersion()`

    - #### getPlatformMinimumVersion

          @MediaProperty(uuid1=85985539,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="MinPlatformVersion",
                         typeName="VersionType",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8714,
                         symbol="MinPlatformVersion")
          public VersionType getPlatformMinimumVersion()
                                                                                                                                                                                                                                                                                                                                                                                                            throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the minimum acceptable platform version for the defined plugin, which specifies the minimum version of the platform on which this plugin will function. This is an optional property.

      Specified by:
        `getPlatformMinimumVersion` in interface `PluginDefinition`
      Returns:
        Minimum acceptable platform version for the defined plugin.
      Throws:
        `PropertyNotPresentException` - The optional platform minimum version property is not present for this plugin definition.
      See Also:
        `PluginDefinition.getPlatformMaximumVersion()`, `PluginDefinition.getPlatformVersionRange()`

    - #### setPlatformMinimumVersion

          @MediaPropertySetter(value="MinPlatformVersion")
          public void setPlatformMinimumVersion(VersionType minVersion)

      Description copied from interface: `PluginDefinition`

      Sets the minimum platform version property of the defined plugin, which specifies the minimum version of the platform for which the plugin will function. Set this optional property to `null` to omit it.

      Specified by:
        `setPlatformMinimumVersion` in interface `PluginDefinition`
      Parameters:
        `minVersion` - Minimum platform version of the defined plugin.

    - #### getPlatformMaximumVersion

          @MediaProperty(uuid1=85985540,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="MaxPlatformVersion",
                         typeName="VersionType",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8715,
                         symbol="MaxPlatformVersion")
          public VersionType getPlatformMaximumVersion()
                                                                                                                                                                                                                                                                                                                                                                                                            throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the maximum acceptable platform version for the defined plugin, which specifies the maximum version of the platform on which this plugin will function. This is an optional property.

      Specified by:
        `getPlatformMaximumVersion` in interface `PluginDefinition`
      Returns:
        Maximum acceptable platform version for the defined plugin.
      Throws:
        `PropertyNotPresentException` - The optional platform maximum version property is not present for this plugin definition.
      See Also:
        `PluginDefinition.getPlatformMinimumVersion()`, `PluginDefinition.getPlatformVersionRange()`

    - #### setPlatformMaximumVersion

          @MediaPropertySetter(value="MaxPlatformVersion")
          public void setPlatformMaximumVersion(VersionType maxVersion)

      Description copied from interface: `PluginDefinition`

      Sets the maximum platform version property of the defined plugin, which specifies the maximum version of the platform for which the plugin will function. Set this optional property to `null` to omit it.

      Specified by:
        `setPlatformMaximumVersion` in interface `PluginDefinition`
      Parameters:
        `maxVersion` - Maximum platform version of the defined plugin.

    - #### getPluginAPI

          @MediaProperty(uuid1=85985544,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="PluginAPI",
                         typeName="AUID",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8719,
                         symbol="PluginAPI")
          public AUID getPluginAPI()
                                                                                                                                                                                                                                                                                                                                                               throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the identifier for the manufacturer's interface that is supported by the defined plugin. This is an optional property.

      Specified by:
        `getPluginAPI` in interface `PluginDefinition`
      Returns:
        Identifier for the plugin interface of the defined plugin.
      Throws:
        `PropertyNotPresentException` - The optional plugin API property is not present in this plugin definition.
      See Also:
        `PluginIdentifiers.PluginAPI_EssenceAccess`

    - #### setPluginAPI

          @MediaPropertySetter(value="PluginAPI")
          public void setPluginAPI(AUID pluginAPI)

      Description copied from interface: `PluginDefinition`

      Sets the identifier for the manufacturer's interface that is supported by the defined plugin. Set this optional property to `null` to omit it.

      Specified by:
        `setPluginAPI` in interface `PluginDefinition`
      Parameters:
        `pluginAPI` - Identifier for the plugin interface of the defined plugin.
      See Also:
        `PluginIdentifiers.Engine_None`

    - #### getPluginAPIVersionRange

          public VersionType[] getPluginAPIVersionRange()
                                                 throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the minimum and maximum plugin API version properties of the defined plugin, which are the minimum and maximum versions of the plugin API for which this plugin will function. The plugin API version range properties are optional.

      The value returned is an array containing two version numbers with the value at index 0 being the minimum version number and the value at index 1 being the maximum.

      Specified by:
        `getPluginAPIVersionRange` in interface `PluginDefinition`
      Returns:
        Array containing plugin API minimum and maximum version for the defined plugin.
      Throws:
        `PropertyNotPresentException` - The optional plugin API version range is not present in this plugin definition.
      See Also:
        `PluginDefinition.getPluginAPI()`, `PluginDefinition.getPluginAPIMinimumVersion()`, `PluginDefinition.getPluginAPIMaximumVersion()`

    - #### getPluginAPIMinimumVersion

          @MediaProperty(uuid1=85985545,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="MinPluginAPI",
                         typeName="VersionType",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8720,
                         symbol="MinPluginAPI")
          public VersionType getPluginAPIMinimumVersion()
                                                                                                                                                                                                                                                                                                                                                                                                 throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the minimum acceptable plugin API version supporting the defined plugin, which is the minimum version of the plugin API for which this plugin will function. The minimum plugin API version property is optional.

      Specified by:
        `getPluginAPIMinimumVersion` in interface `PluginDefinition`
      Returns:
        Minimum acceptable plugin API version supporting the defined plugin
      Throws:
        `PropertyNotPresentException` - The optional plugin API minimum version property is not present for this plugin definition.
      See Also:
        `PluginDefinition.getPluginAPI()`, `PluginDefinition.getPluginAPIVersionRange()`, `PluginDefinition.getPlatformMaximumVersion()`

    - #### setPluginAPIMinimumVersion

          @MediaPropertySetter(value="MinPluginAPI")
          public void setPluginAPIMinimumVersion(VersionType minVersion)

      Description copied from interface: `PluginDefinition`

      Sets the minimum plugin API version property of the defined plugin, which specifies the minimum version number of the specified plugin interfaces that the plugin supports. Set this optional property to `null` to omit it.

      Specified by:
        `setPluginAPIMinimumVersion` in interface `PluginDefinition`
      Parameters:
        `minVersion` - The minimum plugin API version of the defined plugin.

    - #### getPluginAPIMaximumVersion

          @MediaProperty(uuid1=85985546,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="MaxPluginAPI",
                         typeName="VersionType",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8721,
                         symbol="MaxPluginAPI")
          public VersionType getPluginAPIMaximumVersion()
                                                                                                                                                                                                                                                                                                                                                                                                 throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the maximum acceptable plugin API version supporting the defined plugin, which is the maximum version of the plugin API for which this plugin will function. The maximum plugin API version property is optional.

      Specified by:
        `getPluginAPIMaximumVersion` in interface `PluginDefinition`
      Returns:
        Maximum acceptable plugin API version supporting the defined plugin
      Throws:
        `PropertyNotPresentException` - The optional plugin API maximum version property is not present for this plugin definition.
      See Also:
        `PluginDefinition.getPluginAPI()`, `PluginDefinition.getPluginAPIVersionRange()`, `PluginDefinition.getPlatformMinimumVersion()`

    - #### setPluginAPIMaximumVersion

          @MediaPropertySetter(value="MaxPluginAPI")
          public void setPluginAPIMaximumVersion(VersionType maxVersion)

      Description copied from interface: `PluginDefinition`

      Sets the maximum plugin API version property of the defined plugin, which specifies the maximum version number of the specified plugin interfaces that the plugin supports. Set this optional property to `null` to omit it.

      Specified by:
        `setPluginAPIMaximumVersion` in interface `PluginDefinition`
      Parameters:
        `maxVersion` - Maximum plugin API version for the defined plugin.

    - #### getDeviceManufacturerName

          @MediaProperty(uuid1=17432833,
                         uuid2=257,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="DeviceManufacturerName",
                         aliases={"Manufacturer","PluginDefinitionManufacturer"},
                         typeName="UTF16String",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8710,
                         symbol="DeviceManufacturerName")
          public String getDeviceManufacturerName()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the plugin manufacturer name for the defined plugin, which specifies a string that can be used to identify the plugin manufacturer to the user. This is an optional property.

      Specified by:
        `getDeviceManufacturerName` in interface `PluginDefinition`
      Returns:
        Plugin manufacturer name of the plugin definition.
      Throws:
        `PropertyNotPresentException` - The optional manufacturer's name is not set for the plugin definition.

    - #### setDeviceManufacturerName

          @MediaPropertySetter(value="DeviceManufacturerName")
          public void setDeviceManufacturerName(String deviceManufacturerName)

      Description copied from interface: `PluginDefinition`

      Set the plugin manufacturer name for the defined plugin, which specifies a string that can be used to identify the plugin manufacturer to the user. Set this optional property to `null` to omit it.

      Specified by:
        `setDeviceManufacturerName` in interface `PluginDefinition`
      Parameters:
        `deviceManufacturerName` - Plugin manufacturer name for this plugin definition.

    - #### getPluginVersion

          @MediaProperty(uuid1=50529025,
                         uuid2=768,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="PluginVersion",
                         aliases="VersionNumber",
                         typeName="VersionType",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=8708,
                         symbol="PluginVersion")
          public VersionType getPluginVersion()

      Description copied from interface: `PluginDefinition`

      Returns the plugin version of the defined plugin.

      Specified by:
        `getPluginVersion` in interface `PluginDefinition`
      Returns:
        Plugin version of the defined plugin.

    - #### setPluginVersion

          @MediaPropertySetter(value="PluginVersion")
          public void setPluginVersion(VersionType version)
                                                                            throws NullPointerException

      Description copied from interface: `PluginDefinition`

      Sets the plugin version of the defined plugin.

      Specified by:
        `setPluginVersion` in interface `PluginDefinition`
      Parameters:
        `version` - Plugin version of the defined plugin.
      Throws:
        `NullPointerException` - The given version number is `null`.

    - #### initializePluginVersion

          public static final VersionType initializePluginVersion()

    - #### getPluginVersionString

          @MediaProperty(uuid1=50529025,
                         uuid2=513,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="PluginVersionString",
                         aliases="VersionString",
                         typeName="UTF16String",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8709,
                         symbol="PluginVersionString")
          public String getPluginVersionString()
                                                                                                                                                                                                                                                                                                                                                                                                                                                throws PropertyNotPresentException

      Description copied from interface: `PluginDefinition`

      Returns the plugin version string of the defined plugin, which specifies a string that can be used to identify the plugin version to the user.

      Specified by:
        `getPluginVersionString` in interface `PluginDefinition`
      Returns:
        Plugin version string of this plugin definition.
      Throws:
        `PropertyNotPresentException` - The optional version string property is not present in this plugin definition.

    - #### setPluginVersionString

          @MediaPropertySetter(value="PluginVersionString")
          public void setPluginVersionString(String pluginVersionString)

      Description copied from interface: `PluginDefinition`

      Sets the plugin version string of this defined plugin, which specifies a string that can be used to identify the plugin version to the user. Set this optional property to `null` to omit it.

      Specified by:
        `setPluginVersionString` in interface `PluginDefinition`
      Parameters:
        `pluginVersionString` - Plugin version string of this plugin definition.

    - #### isAccelerated

          public boolean isAccelerated()

      Description copied from interface: `PluginDefinition`

      Returns `true` if the defined plugin is capable of running with a hardware accelerator; otherwise `false`. If the result is `true` then the plugin may additionally support software decompression.

      If this optional property is not present, the default value of false is returned.

      Specified by:
        `isAccelerated` in interface `PluginDefinition`
      Returns:
        Is the defined plugin capable of running with hardware acceleration?
      See Also:
        `PluginDefinition.ACCELERATOR_DEFAULT`, `PluginDefinition.getIsAccelerated()`

    - #### getIsAccelerated

          @MediaProperty(uuid1=85985548,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="Accelerator",
                         typeName="Boolean",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8723,
                         symbol="Accelerator")
          public boolean getIsAccelerated()

      Description copied from interface: `PluginDefinition`

      Returns `true` if the defined plugin is capable of running with a hardware accelerator; otherwise `false`. If the result is `true` then the plugin may additionally support software decompression.

      If this optional property is not present, the default value of false is returned.

      Specified by:
        `getIsAccelerated` in interface `PluginDefinition`
      Returns:
        Is the defined plugin capable of running with hardware acceleration?
      See Also:
        `PluginDefinition.ACCELERATOR_DEFAULT`, `PluginDefinition.isAccelerated()`

    - #### setIsAccelerated

          @MediaPropertySetter(value="Accelerator")
          public void setIsAccelerated(Boolean isAccelerated)

      Description copied from interface: `PluginDefinition`

      Set to `true` if the defined plugin is capable of running with a hardware accelerator; otherwise `false`. If the result is `true` then the plugin may additionally support software decompression.

      The default value for this optional property is false. To omit this optional property, call this method with `null`.

      Specified by:
        `setIsAccelerated` in interface `PluginDefinition`
      Parameters:
        `isAccelerated` - Is the defined plugin capable of running with hardware acceleration?
      See Also:
        `PluginDefinition.ACCELERATOR_DEFAULT`

    - #### isSoftwareOnly

          public boolean isSoftwareOnly()

      Description copied from interface: `PluginDefinition`

      Returns `true` if the defined plugin is capable of running in a software-only environment; otherwise `false`. A value of `true` indicates that no additional hardware is required. If the result is `true` then this plugin may also support hardware acceleration, as long as it also supports a software-only method of processing data.

      If this optional property is not present, the default value of false is returned.

      Specified by:
        `isSoftwareOnly` in interface `PluginDefinition`
      Returns:
        Is the define plugin capable of running in a software-only environment?
      See Also:
        `PluginDefinition.SOFTWAREONLY_DEFAULT`, `PluginDefinition.getIsSoftwareOnly()`

    - #### getIsSoftwareOnly

          @MediaProperty(uuid1=85985547,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="SoftwareOnly",
                         typeName="Boolean",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8722,
                         symbol="SoftwareOnly")
          public boolean getIsSoftwareOnly()

      Description copied from interface: `PluginDefinition`

      Returns `true` if the defined plugin is capable of running in a software-only environment; otherwise `false`. A value of `true` indicates that no additional hardware is required. If the result is `true` then this plugin may also support hardware acceleration, as long as it also supports a software-only method of processing data.

      If this optional property is not present, the default value of false is returned.

      Specified by:
        `getIsSoftwareOnly` in interface `PluginDefinition`
      Returns:
        Is the define plugin capable of running in a software-only environment?
      See Also:
        `PluginDefinition.SOFTWAREONLY_DEFAULT`, `PluginDefinition.isSoftwareOnly()`

    - #### setIsSoftwareOnly

          @MediaPropertySetter(value="SoftwareOnly")
          public void setIsSoftwareOnly(Boolean isSoftwareOnly)

      Description copied from interface: `PluginDefinition`

      Set to `true` if the defined plugin is capable of running in a software-only environment; otherwise `false`. A value of `true` indicates that no additional hardware is required. If the result is `true` then this plugin may also support hardware acceleration, as long as it also supports a software-only method of processing data.

      The default value of this optional property is false. To omit this optional property, call this method with `null`.

      Specified by:
        `setIsSoftwareOnly` in interface `PluginDefinition`
      Parameters:
        `isSoftwareOnly` - Is the defined plugin capable of running in a software-only environment?
      See Also:
        `PluginDefinition.SOFTWAREONLY_DEFAULT`

    - #### supportsAuthentication

          public boolean supportsAuthentication()

      Description copied from interface: `PluginDefinition`

      Returns `true` if the defined plugin is capable of supporting authentication; otherwise `false`.

      If this optional property is not present, the default value of false is returned.

      Specified by:
        `supportsAuthentication` in interface `PluginDefinition`
      Returns:
        Is the defined plugin capable of supporting authentication?
      See Also:
        `PluginDefinition.AUTHENTICATION_DEFAULT`, `PluginDefinition.getSupportsAuthentication()`

    - #### getSupportsAuthentication

          @MediaProperty(uuid1=85985550,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="Authentication",
                         typeName="Boolean",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=8725,
                         symbol="Authentication")
          public boolean getSupportsAuthentication()

      Description copied from interface: `PluginDefinition`

      Returns `true` if the defined plugin is capable of supporting authentication; otherwise `false`.

      If this optional property is not present, the default value of false is returned.

      Specified by:
        `getSupportsAuthentication` in interface `PluginDefinition`
      Returns:
        Is the defined plugin capable of supporting authentication?
      See Also:
        `PluginDefinition.AUTHENTICATION_DEFAULT`, `PluginDefinition.supportsAuthentication()`

    - #### setSupportsAuthentication

          @MediaPropertySetter(value="Authentication")
          public void setSupportsAuthentication(Boolean supportsAuthentication)

      Description copied from interface: `PluginDefinition`

      Set to `true` if the defined plugin defined is capable of supporting authentication; otherwise `false`.

      The default value for this optional property is false. To omit this optional property, call this method with `null`.

      Specified by:
        `setSupportsAuthentication` in interface `PluginDefinition`
      Parameters:
        `supportsAuthentication` - Is the defined plugin capable of supporting authentication?
      See Also:
        `PluginDefinition.AUTHENTICATION_DEFAULT`

    - #### clone

          public PluginDefinition 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 `PluginDefinition`
      Overrides:
        `clone` in class `DefinitionObjectImpl`
      Returns:
        Cloned copy of this interchange object.

    - #### getPluginCategoryString

          public String getPluginCategoryString()

    - #### setPluginCategoryString

          public void setPluginCategoryString(String pluginCategory)

    - #### getPluginVersionPersist

          public String getPluginVersionPersist()

    - #### setPluginVersionPersist

          public void setPluginVersionPersist(String pluginVersion)

    - #### getManufacturerIDString

          public String getManufacturerIDString()

    - #### setManufacturerIDString

          public void setManufacturerIDString(String manufacturerID)

    - #### getPluginPlatformString

          public String getPluginPlatformString()

    - #### setPluginPlatformString

          public void setPluginPlatformString(String pluginPlatform)

    - #### getMaxPlatformVersionString

          public String getMaxPlatformVersionString()

    - #### setMaxPlatformVersionString

          public void setMaxPlatformVersionString(String maxPlatformVersion)

    - #### getMinPlatformVersionString

          public String getMinPlatformVersionString()

    - #### setMinPlatformVersionString

          public void setMinPlatformVersionString(String minPlatformVersion)

    - #### getEngineString

          public String getEngineString()

    - #### setEngineString

          public void setEngineString(String engine)

    - #### getMinEngineVersionString

          public String getMinEngineVersionString()

    - #### setMinEngineVersionString

          public void setMinEngineVersionString(String minEngineVersionString)

    - #### getMaxEngineVersionString

          public String getMaxEngineVersionString()

    - #### setMaxEngineVersionString

          public void setMaxEngineVersionString(String maxEngineVersion)

    - #### getPluginAPIString

          public String getPluginAPIString()

    - #### setPluginAPIString

          public void setPluginAPIString(String pluginAPI)

    - #### getMinPluginAPIString

          public String getMinPluginAPIString()

    - #### setMinPluginAPIString

          public void setMinPluginAPIString(String minPluginAPI)

    - #### getMaxPluginAPIString

          public String getMaxPluginAPIString()

    - #### setMaxPluginAPIString

          public void setMaxPluginAPIString(String maxPluginAPI)

    - #### getImplementedClassString

          public String getImplementedClassString()

    - #### setImplementedClassString

          public void setImplementedClassString(String implementedClass)

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