Media Authoring
with Java API

tv.amwa.maj.iface
Interface PluginDefinition

All Superinterfaces:
DefinitionObject, InterchangeObject
All Known Implementing Classes:
PluginDefinition

public interface PluginDefinition
extends DefinitionObject

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

Note that the mechanism of supporting plugins has yet to be determined for the current implementation of the MAJ API.

Author:
Richard Cartwright
See Also:
makePluginDefinition(), PluginIdentifiers, Dictionary.getPluginDefinitions()

Field Summary
static boolean ACCELERATOR_DEFAULT
          Default value for the accelerator property, which is false.
static boolean AUTHENTICATION_DEFAULT
          Default value for the authentication property, which is false.
static boolean SOFTWAREONLY_DEFAULT
          Default value for the software only property, which is false.
 
Method Summary
 void appendLocator(Locator locator)
          Append a locator to the list of plugin locators of this plugin definition, which specify an ordered list of locators that identify locations that provide access to the plugin implementation.
 int countLocators()
          Returns the number of locators in the list of plugin locators of this plugin definition, which specify an ordered list of locators that identify locations that provide access to the plugin implementation.
 AUID getCategoryClass()
          Returns the plugin category of this plugin definition, which specifies the kind of the defined plugin.
 AUID getDefinitionObjectID()
          Returns the definition object handled by the plugin defined by this plugin definition.
 AUID getEngine()
          Returns the software engine identifier that identifies the software subsystem used for essence management and playback for the defined plugin.
 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 getHardwarePlatform()
          Returns the hardware platform identifier of the defined plugin, which identifies the platform by both its hardware platform and operating system.
 Locator getLocatorAt(int index)
          Returns the locator at the given index from the list of locators of this plugin descriptor, which specify an ordered list of locators that identify locations that provide access to the plugin implementation.
 List<? extends Locator> getLocators()
          Returns the list of locators of the plugin definition, which specify an ordered list of locators that identify locations that provide access to the plugin implementation.
 AUID getManufacturerID()
          Returns an AUID that identifies the manufacturer of this plugin definition.
 NetworkLocator getManufacturerInfo()
          Returns a network locator pointing to manufacturer information for the plugin definition, which provides a link to a web page containing information about the manufacturer.
 VersionType[] getPlatformVersionRange()
          Returns the minimum and maximum platform version properties of this plugin definition, which specify the minimum and maximum versions of the platform for which the defined plugin will function.
 AUID getPluginAPI()
          Returns the identifier for the manufacturer's interface that is supported by the defined plugin.
 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 getPluginManufacturerName()
          Returns the plugin manufacturer name for this plugin definition, which specifies a string that can be used to identify the plugin manufacturer to the user.
 VersionType getPluginVersion()
          Returns the version number property of this plugin descriptor, which specifies the plugin version.
 String getPluginVersionString()
          Returns the plugin version string of this plugin definition, which specifies a string that can be used to identify the plugin version to the user.
 void insertLocatorAt(int index, Locator locator)
          Insert a locator at the given index into the list of locators of this plugin definition, which specify an ordered list of locators that identify locations that provide access to the plugin implementation.
 boolean isAccelerated()
          Returns true if the plugin defined by this plugin definition is capable of running with a hardware accelerator; otherwise false.
 boolean isSoftwareOnly()
          Returns true if the plugin defined by this plugin definition is capable of running in a software-only environment; otherwise false.
 void prependLocator(Locator locator)
          Prepend a locator to the list of plugin locators of this plugin definition, which specify an ordered list of locators that identify locations that provide access to the plugin implementation.
 void removeLocatorAt(int index)
          Remove the locator at the given index from the list of locators of the plugin definition, which specify an ordered list of locators that identify locations that provide access to the plugin implementation.
 void setCategoryClass(AUID categoryClass)
          Sets the plugin category of this plugin definition, which specifies the kind of the defined plugin.
 void setDefinitionObjectID(AUID definitionObjectId)
          Sets the definition object handled by the plugin defined by by this plugin definition.
 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 maxVersion)
          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 setHardwarePlatform(AUID hardwarePlatform)
          Sets the hardware platform identifier of the defined plugin, which identifies the platform by both the hardware platform and operating system.
 void setIsAccelerated(Boolean isAccelerated)
          Set to true if the plugin defined by this plugin definition is capable of running with a hardware accelerator; otherwise false.
 void setIsSoftwareOnly(Boolean isSoftwareOnly)
          Set to true if the plugin defined by this plugin definition is capable of running in a software-only environment; otherwise false.
 void setManufacturerID(AUID manufacturerId)
          Sets the AUID that identifies the manufacturer of this plugin definition.
 void setManufacturerInfo(NetworkLocator manufacturerInfo)
          Set a network locator pointing to the location of manufacturer information for the plugin definition.
 void setPlatformMaximumVersion(VersionType maxVersion)
          Sets the maximum platform version property of the plugin definition, which specifies the maximum version of the platform for which the defined plugin will function.
 void setPlatformMinimumVersion(VersionType minVersion)
          Sets the minimum platform version property of this plugin definition, which specifies the minimum version of the platform for which the defined 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 setPluginManufacturerName(String pluginManufacturerName)
          Set the plugin manufacturer name for the plugin definition, which specifies a string that can be used to identify the plugin manufacturer to the user.
 void setPluginVersion(VersionType version)
          Sets the version number property of this plugin descriptor, which specifies the plugin version.
 void setPluginVersionString(String pluginVersionString)
          Sets the plugin version string of this plugin definition, 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 plugin defined by this plugin definition is capable of supporting authentication; otherwise false.
 boolean supportsAuthentication()
          Returns true if the plugin defined by this plugin definition is capable of supporting authentication; otherwise false.
 
Methods inherited from interface tv.amwa.maj.iface.DefinitionObject
getAUID, getDescription, getName, setDescription, setName
 
Methods inherited from interface tv.amwa.maj.iface.InterchangeObject
countProperties, createOptionalPropertyValue, disableGenerationTracking, enableGenerationTracking, getDefinition, getGeneration, getGenerationAUID, getProperties, getPropertyValue, isGenerationTracked, isPropertyPresent, omitOpionalProperty, setPropertyValue
 

Field Detail

SOFTWAREONLY_DEFAULT

static final boolean SOFTWAREONLY_DEFAULT

Default value for the software only property, which is false. The property specifies if the plugin is capable of executing in a software-only environment.

See Also:
isSoftwareOnly(), setIsSoftwareOnly(Boolean), Constant Field Values

ACCELERATOR_DEFAULT

static final boolean ACCELERATOR_DEFAULT

Default value for the accelerator property, which is false. The property specifies if the plugin is capable of using hardware to accelerate essence processing.

See Also:
isAccelerated(), setIsAccelerated(Boolean), Constant Field Values

AUTHENTICATION_DEFAULT

static final boolean AUTHENTICATION_DEFAULT

Default value for the authentication property, which is false. The property specifies that the plugin implementation supports authentication.

See Also:
supportsAuthentication(), setSupportsAuthentication(Boolean), Constant Field Values
Method Detail

getCategoryClass

AUID getCategoryClass()

Returns the plugin category of this plugin definition, which specifies the kind of the defined plugin. The AAF built in categories are:

Returns:
Kind of plugin defined.
See Also:
PluginCategoryType, TypeDefinitionExtendibleEnumeration.PluginCategoryType

setCategoryClass

void setCategoryClass(AUID categoryClass)
                      throws NullPointerException

Sets the plugin category of this plugin definition, which specifies the kind of the defined plugin. The AAF built in categories are:

Parameters:
categoryClass - Kind of plugin defined.
Throws:
NullPointerException - The given plugin category is null.
See Also:
PluginCategoryType, TypeDefinitionExtendibleEnumeration.PluginCategoryType

getPluginVersion

VersionType getPluginVersion()

Returns the version number property of this plugin descriptor, which specifies the plugin version.

Returns:
Version number of this plugin definition.

setPluginVersion

void setPluginVersion(VersionType version)
                      throws NullPointerException

Sets the version number property of this plugin descriptor, which specifies the plugin version.

Throws:
NullPointerException - The given version number is null.

setPluginVersionString

void setPluginVersionString(@AAFString
                            String pluginVersionString)

Sets the plugin version string of this plugin definition, 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.

Parameters:
pluginVersionString - Plugin version string of this plugin definition.

getPluginVersionString

@AAFString
String getPluginVersionString()
                              throws PropertyNotPresentException

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

Returns:
Plugin version string of this plugin definition.
Throws:
PropertyNotPresentException - The optional version string property is not present in this plugin definition.

setPluginManufacturerName

void setPluginManufacturerName(@AAFString
                               String pluginManufacturerName)

Set the plugin manufacturer name for the plugin definition, 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.

Parameters:
pluginManufacturerName - Plugin manufacturer name for this plugin definition.

getPluginManufacturerName

@AAFString
String getPluginManufacturerName()
                                 throws PropertyNotPresentException

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

Returns:
Plugin manufacturer name of the plugin definition.
Throws:
PropertyNotPresentException - The optional manufacturer's name is not set for the plugin definition.

getManufacturerInfo

NetworkLocator getManufacturerInfo()
                                   throws PropertyNotPresentException

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

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

void setManufacturerInfo(NetworkLocator manufacturerInfo)

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

Parameters:
manufacturerInfo - Network locator for pointing to manufacturer information for the definition.

getManufacturerID

AUID getManufacturerID()
                       throws PropertyNotPresentException

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

Returns:
Manufacturer id for this plugin definition.
Throws:
PropertyNotPresentException - The optional manufacturer id property is not present in this plugin definition.

setManufacturerID

void setManufacturerID(AUID manufacturerId)

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

Parameters:
manufacturerId - Manufacturer id for this plugin definition.

getHardwarePlatform

@HardwarePlatform
AUID getHardwarePlatform()
                         throws PropertyNotPresentException

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.

Returns:
Hardware platform identifier for this plugin definition.
Throws:
PropertyNotPresentException - The optional hardware platform property is not present in this plugin definition.
See Also:
PluginIdentifiers.Platform_Independent

setHardwarePlatform

void setHardwarePlatform(@HardwarePlatform
                         AUID hardwarePlatform)

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.

Parameters:
hardwarePlatform - Hardware platform identifier for this plugin definition.
See Also:
PluginIdentifiers.Platform_Independent

getPlatformVersionRange

VersionType[] getPlatformVersionRange()
                                      throws PropertyNotPresentException

Returns the minimum and maximum platform version properties of this plugin definition, which specify the minimum and maximum versions of the platform for which the defined 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.

Returns:
Array containing the minimum and maximum platform versions of this plugin definition.
Throws:
PropertyNotPresentException - The optional platform version range is not fully specified in this plugin definition.

setPlatformMinimumVersion

void setPlatformMinimumVersion(VersionType minVersion)

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

Parameters:
minVersion - Minimum platform version of this plugin definition.

setPlatformMaximumVersion

void setPlatformMaximumVersion(VersionType maxVersion)

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

Parameters:
maxVersion - Maximum platform version of this plugin definition.

getEngine

@Engine
AUID getEngine()
               throws PropertyNotPresentException

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.

Returns:
Software engine identifier for this plugin definition.
Throws:
PropertyNotPresentException - The optional engine property is not present in this plugin definition.
See Also:
PluginIdentifiers.Engine_None

setEngine

void setEngine(@Engine
               AUID engine)

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.

Parameters:
engine - Software engine identifier for the plugin definition.
See Also:
PluginIdentifiers.Engine_None

getEngineVersionRange

VersionType[] getEngineVersionRange()
                                    throws PropertyNotPresentException

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.

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

setEngineMinimumVersion

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. Set this optional property to null to omit it.

Parameters:
minVersion - Minimum engine version for this plugin definition.

setEngineMaximumVersion

void setEngineMaximumVersion(VersionType maxVersion)

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.

Parameters:
maxVersion - Maximum engine version for the plugin definition.

getPluginAPI

@PluginAPI
AUID getPluginAPI()
                  throws PropertyNotPresentException

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

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

setPluginAPI

void setPluginAPI(@PluginAPI
                  AUID pluginApi)

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

Parameters:
pluginApi - Identifier for the plugin interface property of this plugin definition.
See Also:
PluginIdentifiers.Engine_None

getPluginAPIVersionRange

VersionType[] getPluginAPIVersionRange()
                                       throws PropertyNotPresentException

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.

Returns:
Array containing plugin API minimum and maximum version for this plugin definition.
Throws:
PropertyNotPresentException - The optional plugin API version range is not present in this plugin definition.
See Also:
getPluginAPI()

setPluginAPIMinimumVersion

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. Set this optional property to null to omit it.

Parameters:
minVersion - The minimum plugin API version of this plugin definition.

setPluginAPIMaximumVersion

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. Set this optional property to null to omit it.

Parameters:
maxVersion - Maximum plugin API version for this plugin definition.

isSoftwareOnly

@Bool
boolean isSoftwareOnly()

Returns true if the plugin defined by this plugin definition 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.

Returns:
Does the plugin definition represent a plugin that is capable of running in a software-only environment?
See Also:
SOFTWAREONLY_DEFAULT

setIsSoftwareOnly

void setIsSoftwareOnly(@Bool
                       Boolean isSoftwareOnly)

Set to true if the plugin defined by this plugin definition 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.

Parameters:
isSoftwareOnly - Does the plugin definition represent a plugin that is capable of running in a software-only environment?
See Also:
SOFTWAREONLY_DEFAULT

isAccelerated

@Bool
boolean isAccelerated()

Returns true if the plugin defined by this plugin definition 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.

Returns:
Is the plugin associated with the plugin definition capable of running with hardware acceleration?
See Also:
ACCELERATOR_DEFAULT

setIsAccelerated

void setIsAccelerated(@Bool
                      Boolean isAccelerated)

Set to true if the plugin defined by this plugin definition 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.

Parameters:
isAccelerated - Is the plugin associated with the plugin definition capable of running with hardware acceleration?
See Also:
ACCELERATOR_DEFAULT

supportsAuthentication

@Bool
boolean supportsAuthentication()

Returns true if the plugin defined by this plugin definition is capable of supporting authentication; otherwise false.

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

Returns:
Is the plugin represented by the plugin definition capable of supporting authentication?
See Also:
AUTHENTICATION_DEFAULT

setSupportsAuthentication

void setSupportsAuthentication(@Bool
                               Boolean supportsAuthentication)

Set to true if the plugin defined by this plugin definition 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.

Parameters:
supportsAuthentication - Is the plugin represented by the plugin definition capable of supporting authentication?
See Also:
AUTHENTICATION_DEFAULT

countLocators

@UInt32
int countLocators()

Returns the number of locators in the list of plugin locators of this plugin definition, which specify an ordered list of locators that identify locations that provide access to the plugin 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.

Returns:
Number of locators attached to this plugin definition.

appendLocator

void appendLocator(Locator locator)
                   throws NullPointerException

Append a locator to the list of plugin locators of this plugin definition, which specify an ordered list of locators that identify locations that provide access to the plugin 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.

Parameters:
locator - Locator of the plugin to append to the list of locators of this plugin definition.
Throws:
NullPointerException - The given locator to append is null.

prependLocator

void prependLocator(Locator locator)
                    throws NullPointerException

Prepend a locator to the list of plugin locators of this plugin definition, which specify an ordered list of locators that identify locations that provide access to the plugin 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.

Parameters:
locator - Locator to prepend to the list of plugin locators of the plugin definition.
Throws:
NullPointerException - The given locator to prepend is null.

insertLocatorAt

void insertLocatorAt(@UInt32
                     int index,
                     Locator locator)
                     throws NullPointerException,
                            IndexOutOfBoundsException

Insert a locator at the given index into the list of locators of this plugin definition, which specify an ordered list of locators that identify locations that provide access to the plugin 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.

Parameters:
index - Index where the locator should be inserted.
locator - 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.

getLocatorAt

Locator getLocatorAt(@UInt32
                     int index)
                     throws IndexOutOfBoundsException

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

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.

removeLocatorAt

void removeLocatorAt(@UInt32
                     int index)
                     throws IndexOutOfBoundsException

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

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.

getLocators

List<? extends Locator> getLocators()

Returns the list of locators of the plugin definition, which specify an ordered list of locators that identify locations that provide access to the plugin implementation.

Returns:
Shallow copy of the list of the locators for this plugin definition.

setDefinitionObjectID

void setDefinitionObjectID(AUID definitionObjectId)
                           throws NullPointerException

Sets the definition object handled by the plugin defined by by this plugin definition. This property specifies the AUID of the class definition for the definition or meta definition that it provides an implementation of.

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

Parameters:
definitionObjectId - Definition object of the plugin definition.
Throws:
NullPointerException - The given definition object identifier is null.
See Also:
getCategoryClass()

getDefinitionObjectID

AUID getDefinitionObjectID()
                           throws PropertyNotPresentException

Returns the definition object handled by the plugin defined by this plugin definition. This property specifies the AUID of the class definition for the definition or meta definition that it provides an implementation of.

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

Returns:
Definition object of the plugin definition.
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.

Media Authoring
with Java API

(c) 2007-2008 Richard Cartwright, all rights reserved. Subject to the terms of the AAF SDK Public Source License.