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

tv.amwa.maj.model.impl

## Class OperationDefinitionImpl

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

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

      @MediaClass(uuid1=218169601,
                  uuid2=257,
                  uuid3=7168,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="OperationDefinition",
                  description="The OperationDefinition class identifies an operation that is performed on an array of Segments.",
                  symbol="OperationDefinition")
      public class OperationDefinitionImpl
      extends DefinitionObjectImpl
      implements OperationDefinition, Serializable, OperationConstant, Cloneable, WeakReferenceTarget

  Implements the definition of an operation that is performed on an array of segments. Operation definitions specify which parameters are possible on an operation, while an operation group specifies specific parameters and input segments for a particular operation invocation.

  THE COMMENTS FOR THIS CLASS ARE INCOMPLETE.

  See Also:
    `TypeDefinitions.OperationDefinitionWeakReference`, `TypeDefinitions.OperationDefinitionStrongReference`, `TypeDefinitions.OperationDefinitionStrongReferenceSet`, `TypeDefinitions.OperationDefinitionWeakReferenceVector`, Serialized Form

- - ### Field Summary

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

      `ObjectClassPropertyID`

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

      `ISTIMEWARP_DEFAULT`

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

      `Flip, FlipFlop, Flop, MonoAudioDissolve, MonoAudioGain, MonoAudioMixdown, MonoAudioPan, PictureWithMate, SMPTEVideoWipe, StereoAudioDissolve, StereoAudioGain, TwoParameterMonoAudioDissolve, Unknown, VideoAlphaWithinVideoKey, VideoChromaKey, VideoCornerPinning, VideoCrop, VideoDissolve, VideoFadeToBlack, VideoFrameToMask, VideoLuminanceKey, VideoPosition, VideoRepeat, VideoRotate, VideoScale, VideoSeparateAlphaKey, VideoSpeedControl`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OperationDefinitionImpl()`
    `OperationDefinitionImpl(AUID identifier, String name, DataDefinition dataDefinition, int numInputs)` Creates and initializes a new operation definition, which identifies an operation that is performed on an array of `segments`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addParameterDefinition(ParameterDefinition parameterDefinition)` Add a parameter definition to the unordered collection of parameter definitions of the defined operation, which specify the parameters that can be used as controls for the operation.
    `void` | `appendDegradeToOperation(OperationDefinition operationDefinition)` Append an operation definition to the degrade-to list of operation definitions of the defined operation, which specify simpler operations that an application can substitute for the defined operation if it cannot process it.
    `void` | `clearDegradeToOperations()` Clears the list degrade-to operations of this operation definition, omitting this optional property.
    `void` | `clearOperationParametersDefined()`
    `OperationDefinition` | `clone()` Create a cloned copy of this interchange object.
    `static int` | `count()`
    `int` | `countDegradeToOperations()` Returns the number of degrade-to operations in this operation definition, which specify simpler operations that an application can substitute for the defined operation if it cannot process it.
    `int` | `countOperationParametersDefined()` Return the number of parameter definitions of the defined operation, which specify the parameters that can be used as controls for the operation.
    `static OperationDefinition` | `forAUID(AUID identification)`
    `static OperationDefinition` | `forIdentification(AUID identification)`
    `static OperationDefinition` | `forName(String operationName)`
    `int` | `getBypass()` This is a 1-based index.
    `List<OperationDefinition>` | `getDegradeToOperations()` Returns the list of degrade-to operation definitions of the defined operation, which specify simpler operations that an application can substitute for the defined operation if it cannot process it.
    `boolean` | `getIsTimeWarp()` Returns `true` if the length of an operation group is different from the lengths of the input segments, for example a slow motion effect.
    `AUID` | `getOperationCategory()` Returns an AUID identifying the category of the defined operation, which specifies the kind of operation, such as video effect, audio effect, or 3D operation.
    `String` | `getOperationCategoryString()`
    `DataDefinition` | `getOperationDataDefinition()` Returns the kind of data that is produced by the defined operation.
    `int` | `getOperationInputCount()` Returns the number of input media segments of the defined operation definition.
    `Set<ParameterDefinition>` | `getOperationParametersDefined()` Returns the collection of parameter definitions of the defined operation, which specify the parameters that can be used as controls for the operation.
    `static DataDefinition` | `initializeOperationDataDefinition()`
    `static int` | `initializeOperationInputCount()`
    `void` | `insertDegradeToOperationAt(int index, OperationDefinition operationDefinition)` Insert an operation definition into the degrade-to list of definitions of the defined operation at the given index.
    `static Collection<String>` | `inventory()`
    `boolean` | `isTimeWarp()` Returns `true` if the length of an operation group is different from the lengths of the input segments, for example a slow motion effect.
    `ParameterDefinition` | `lookupOperationParameter(AUID parameterDefinition)` Looks up and returns the parameter definition corresponding to the given identifier from the collection of defined parameters of the defined operation.
    `void` | `prependDegradeToOperation(OperationDefinition operationDefinition)` Prepend an operation definition to the degrade-to list of operation definitions of the defined operation, which specify simpler operations that an application can substitute for the defined operation if it cannot process it.
    `static boolean` | `registerOperationDefinition(OperationDefinition definedOperation)`
    `static int` | `registerOperationsFromClass(Class<?> classWithOperations)`
    `void` | `removeDegradeToOperationAt(int index)` Removes the indexed operation definition from the degrade-to list of operation definitions of the defined operation, which specify simpler operations that an application can substitute for the defined operation if it cannot process it.
    `void` | `setBypass(Integer bypass)` Sets the bypass media segment index, which specifies the array index (1-based) of the input segment which is the primary input.
    `void` | `setIsTimeWarp(Boolean isTimeWarp)` Set to `true` to indicate that the the length of an operation group is different from the lengths of the input segments, for example a slow motion effect.
    `void` | `setOperationCategory(AUID operationCategory)` Sets an AUID identifying the category of the defined operation, which specifies the kind of operation, such as video effect, audio effect, or 3D operation.
    `void` | `setOperationCategoryString(String operationCategory)`
    `void` | `setOperationDataDefinition(DataDefinition operationDdataDefinition)` Sets the kind of data that is produced by the defined operation.
    `void` | `setOperationInputCount(int operationInputCount)` Sets the number of input media segments for the defined operation.

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

    - #### OperationDefinitionImpl

          public OperationDefinitionImpl()

    - #### OperationDefinitionImpl

          public OperationDefinitionImpl(AUID identifier,
                                         @AAFString
                                         String name,
                                         DataDefinition dataDefinition,
                                         int numInputs)
                                  throws NullPointerException

      Creates and initializes a new operation definition, which identifies an operation that is performed on an array of `segments`.

      Parameters:
        `identifier` - Unique identifier for the operation definition.
        `name` - Display name of the operation definition.
        `dataDefinition` - The kind of data that is produced by the operation.
        `numInputs` - Number of input segments. A value of `-1` indicates that the effect can have any number of input segments.
      Throws:
        `NullPointerException` - One or more of the arguments is `null` and they are all required properties.

  - ### Method Detail

    - #### registerOperationsFromClass

          public static final int registerOperationsFromClass(Class<?> classWithOperations)
                                                       throws NullPointerException

      Throws:
        `NullPointerException`

    - #### registerOperationDefinition

          public static final boolean registerOperationDefinition(OperationDefinition definedOperation)
                                                           throws NullPointerException

      Throws:
        `NullPointerException`

    - #### forName

          public static final OperationDefinition forName(String operationName)
                                                   throws NullPointerException

      Throws:
        `NullPointerException`

    - #### forIdentification

          public static final OperationDefinition forIdentification(AUID identification)
                                                             throws NullPointerException

      Throws:
        `NullPointerException`

    - #### forAUID

          public static final OperationDefinition forAUID(AUID identification)
                                                   throws NullPointerException

      Throws:
        `NullPointerException`

    - #### inventory

          public static final Collection<String> inventory()

    - #### count

          public static final int count()

    - #### addParameterDefinition

          @MediaSetAdd(value="OperationParametersDefined")
          public void addParameterDefinition(ParameterDefinition parameterDefinition)
                                                                                       throws NullPointerException,
                                                                                              ObjectAlreadyAttachedException

      Description copied from interface: `OperationDefinition`

      Add a parameter definition to the unordered collection of parameter definitions of the defined operation, which specify the parameters that can be used as controls for the operation.

      Specified by:
        `addParameterDefinition` in interface `OperationDefinition`
      Parameters:
        `parameterDefinition` - Parameter definition object to add.
      Throws:
        `NullPointerException` - The given parameter definition is `null`.
        `ObjectAlreadyAttachedException` - Parameter definition is already present within this operation definition.
      See Also:
        `OperationGroup.addParameter(Parameter)`

    - #### appendDegradeToOperation

          @MediaListAppend(value="DegradeTo")
          public void appendDegradeToOperation(OperationDefinition operationDefinition)
                                                                            throws NullPointerException

      Description copied from interface: `OperationDefinition`

      Append an operation definition to the degrade-to list of operation definitions of the defined operation, which specify simpler operations that an application can substitute for the defined operation if it cannot process it. Use this function to add an operation definition to be scanned last when searching for a replacement, to be considered as a less desirable alternate operation.

      Specified by:
        `appendDegradeToOperation` in interface `OperationDefinition`
      Parameters:
        `operationDefinition` - Degrade-to operation to append.
      Throws:
        `NullPointerException` - The given degrade-to operation definition is `null`.

    - #### countDegradeToOperations

          @MediaPropertyCount(value="DegradeTo")
          public int countDegradeToOperations()

      Description copied from interface: `OperationDefinition`

      Returns the number of degrade-to operations in this operation definition, which specify simpler operations that an application can substitute for the defined operation if it cannot process it.

      Specified by:
        `countDegradeToOperations` in interface `OperationDefinition`
      Returns:
        Number of degrade-to operations listed in this operation definition.

    - #### clearDegradeToOperations

          @MediaPropertyClear(value="DegradeTo")
          public void clearDegradeToOperations()

      Description copied from interface: `OperationDefinition`

      Clears the list degrade-to operations of this operation definition, omitting this optional property.

      Specified by:
        `clearDegradeToOperations` in interface `OperationDefinition`

    - #### countOperationParametersDefined

          @MediaPropertyCount(value="OperationParametersDefined")
          public int countOperationParametersDefined()

      Description copied from interface: `OperationDefinition`

      Return the number of parameter definitions of the defined operation, which specify the parameters that can be used as controls for the operation.

      Specified by:
        `countOperationParametersDefined` in interface `OperationDefinition`
      Returns:
        Number of parameter definitions of the defined operation.

    - #### clearOperationParametersDefined

          @MediaPropertyClear(value="OperationParametersDefined")
          public void clearOperationParametersDefined()

    - #### getBypass

          @MediaProperty(uuid1=87033093,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,1},
                         definedName="Bypass",
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=7688,
                         symbol="Bypass")
          public int getBypass()
                                                                                                                                                                                                                                                                                                                                                       throws PropertyNotPresentException

      This is a 1-based index. A value of `0` indicates this optional property is not set.

      Specified by:
        `getBypass` in interface `OperationDefinition`
      Returns:
        1-based index of the bypass media segment for the defined operation.
      Throws:
        `PropertyNotPresentException` - The optional bypass property is not present in the defined operation.
      See Also:
        `OperationDefinition.getBypass()`

    - #### setBypass

          @MediaPropertySetter(value="Bypass")
          public void setBypass(Integer bypass)

      Description copied from interface: `OperationDefinition`

      Sets the bypass media segment index, which specifies the array index (1-based) of the input segment which is the primary input. This value allows the client application to pick one of the inputs (foreground, background, etc.) to stand in for the effect if it is not available, and none of the degrade to effects are available. Set this optional property to `null` to omit it.

      Specified by:
        `setBypass` in interface `OperationDefinition`
      Parameters:
        `bypass` - Index of bypass media segment for the defined operation.

    - #### getOperationCategory

          @MediaProperty(uuid1=87033098,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="OperationCategory",
                         typeName="OperationCategoryType",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=7686,
                         symbol="OperationCategory")
          public AUID getOperationCategory()
                                                                                                                                                                                                                                                                                                                                                                                                        throws PropertyNotPresentException

      Description copied from interface: `OperationDefinition`

      Returns an AUID identifying the category of the defined operation, which specifies the kind of operation, such as video effect, audio effect, or 3D operation. This is an optional property.

      Specified by:
        `getOperationCategory` in interface `OperationDefinition`
      Returns:
        Identifier for the category of the defined operation.
      Throws:
        `PropertyNotPresentException` - The optional operation category property is not present for the defined operation.
      See Also:
        `OperationCategoryType`, `TypeDefinitions.OperationCategoryType`

    - #### setOperationCategory

          @MediaPropertySetter(value="OperationCategory")
          public void setOperationCategory(AUID operationCategory)

      Description copied from interface: `OperationDefinition`

      Sets an AUID identifying the category of the defined operation, which specifies the kind of operation, such as video effect, audio effect, or 3D operation. Set this optional property to `null` to omit it.

      Specified by:
        `setOperationCategory` in interface `OperationDefinition`
      Parameters:
        `operationCategory` - AUID indicating the category of the defined operation.
      See Also:
        `OperationCategoryType`, `TypeDefinitions.OperationCategoryType`

    - #### getOperationDataDefinition

          @MediaProperty(uuid1=87033097,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="OperationDataDefinition",
                         aliases={"DataDefinition","OperationDefinitionDataDefinition"},
                         typeName="DataDefinitionWeakReference",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=7681,
                         symbol="OperationDataDefinition")
          public DataDefinition getOperationDataDefinition()

      Description copied from interface: `OperationDefinition`

      Returns the kind of data that is produced by the defined operation.

      Specified by:
        `getOperationDataDefinition` in interface `OperationDefinition`
      Returns:
        Kind of data produced by the defined operation.
      See Also:
        `TypeDefinitions.DataDefinitionWeakReference`, `Warehouse.lookup(Class, String)`

    - #### setOperationDataDefinition

          @MediaPropertySetter(value="OperationDataDefinition")
          public void setOperationDataDefinition(DataDefinition operationDdataDefinition)
                                                                                                throws NullPointerException

      Description copied from interface: `OperationDefinition`

      Sets the kind of data that is produced by the defined operation.

      Specified by:
        `setOperationDataDefinition` in interface `OperationDefinition`
      Parameters:
        `operationDdataDefinition` - Kind of data produced by the defined operation.
      Throws:
        `NullPointerException` - The given data definition is `null`.
      See Also:
        `TypeDefinitions.DataDefinitionWeakReference`, `Warehouse.lookup(Class, String)`

    - #### initializeOperationDataDefinition

          public static final DataDefinition initializeOperationDataDefinition()

    - #### getDegradeToOperations

          @MediaProperty(uuid1=100729092,
                         uuid2=1025,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="DegradeTo",
                         typeName="OperationDefinitionWeakReferenceVector",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=7683,
                         symbol="DegradeTo")
          public List<OperationDefinition> getDegradeToOperations()
                                                                                                                                                                                                                                                                                                                                                                                                                                    throws PropertyNotPresentException

      Description copied from interface: `OperationDefinition`

      Returns the list of degrade-to operation definitions of the defined operation, which specify simpler operations that an application can substitute for the defined operation if it cannot process it. The definitions are ordered from the most desirable to the least desirable alternative.

      Specified by:
        `getDegradeToOperations` in interface `OperationDefinition`
      Returns:
        Shallow copy of the list of degrade-to operation definitions of the defined operation.
      Throws:
        `PropertyNotPresentException` - No degrade to operations are present for this operation definition.

    - #### getOperationInputCount

          @MediaProperty(uuid1=87033092,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,1},
                         definedName="OperationInputCount",
                         aliases="NumberInputs",
                         typeName="Int32",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=7687,
                         symbol="OperationInputCount")
          public int getOperationInputCount()

      Description copied from interface: `OperationDefinition`

      Returns the number of input media segments of the defined operation definition. A value of -1 indicates that the effect can have any number of input segments.

      Specified by:
        `getOperationInputCount` in interface `OperationDefinition`
      Returns:
        Number of input media segments for the defined operation.

    - #### setOperationInputCount

          @MediaPropertySetter(value="OperationInputCount")
          public void setOperationInputCount(int operationInputCount)

      Description copied from interface: `OperationDefinition`

      Sets the number of input media segments for the defined operation. A value of -1 indicates that the effect can have any number of input segments.

      Specified by:
        `setOperationInputCount` in interface `OperationDefinition`
      Parameters:
        `operationInputCount` - Number of input media segments of the defined operation.

    - #### initializeOperationInputCount

          public static final int initializeOperationInputCount()

    - #### getOperationParametersDefined

          @MediaProperty(uuid1=100729092,
                         uuid2=770,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="OperationParametersDefined",
                         aliases={"ParametersDefined","ParameterDefinitions"},
                         typeName="ParameterDefinitionWeakReferenceSet",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=7689,
                         symbol="OperationParametersDefined")
          public Set<ParameterDefinition> getOperationParametersDefined()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             throws PropertyNotPresentException

      Description copied from interface: `OperationDefinition`

      Returns the collection of parameter definitions of the defined operation, which specify the parameters that can be used as controls for the operation.

      Specified by:
        `getOperationParametersDefined` in interface `OperationDefinition`
      Returns:
        Shallow copy of the collection of parameter definitions of the defined operation.
      Throws:
        `PropertyNotPresentException` - No parameter definitions are present for the defined operation.
      See Also:
        `OperationGroup.addParameter(Parameter)`, `TypeDefinitions.ParameterDefinitionStrongReferenceSet`

    - #### insertDegradeToOperationAt

          @MediaListInsertAt(value="DegradeTo")
          public void insertDegradeToOperationAt(int index,
                                                                                       OperationDefinition operationDefinition)
                                                                                throws NullPointerException,
                                                                                       IndexOutOfBoundsException

      Description copied from interface: `OperationDefinition`

      Insert an operation definition into the degrade-to list of definitions of the defined operation at the given index. The degrade-to list of operation definitions specify simpler operations that an application can substitute for the defined operation if it cannot process it. Operation definitions already existing at the given and higher indices will be moved up to the next higher index to accommodate.

      Specified by:
        `insertDegradeToOperationAt` in interface `OperationDefinition`
      Parameters:
        `index` - 0-based index at which the operation definition is to be inserted.
        `operationDefinition` - Degrade-to operation definition to insert at the specified index.
      Throws:
        `NullPointerException` - The given operation definition is `null`.
        `IndexOutOfBoundsException` - The index is outside the acceptable range for the current degrade-to list.

    - #### isTimeWarp

          public boolean isTimeWarp()

      Description copied from interface: `OperationDefinition`

      Returns `true` if the length of an operation group is different from the lengths of the input segments, for example a slow motion effect.

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

      Specified by:
        `isTimeWarp` in interface `OperationDefinition`
      Returns:
        Does this operation change the total length of segments in the associated operation group?
      See Also:
        `OperationDefinition.ISTIMEWARP_DEFAULT`, `OperationDefinition.getIsTimeWarp()`

    - #### getIsTimeWarp

          @MediaProperty(uuid1=87033091,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,1},
                         definedName="IsTimeWarp",
                         typeName="Boolean",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=7682,
                         symbol="IsTimeWarp")
          public boolean getIsTimeWarp()

      Description copied from interface: `OperationDefinition`

      Returns `true` if the length of an operation group is different from the lengths of the input segments, for example a slow motion effect.

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

      Specified by:
        `getIsTimeWarp` in interface `OperationDefinition`
      Returns:
        Does this operation change the total length of segments in the associated operation group?
      See Also:
        `OperationDefinition.ISTIMEWARP_DEFAULT`, `OperationDefinition.isTimeWarp()`

    - #### setIsTimeWarp

          @MediaPropertySetter(value="IsTimeWarp")
          public void setIsTimeWarp(Boolean isTimeWarp)

      Description copied from interface: `OperationDefinition`

      Set to `true` to indicate that the the length of an operation group is different from the lengths of the input segments, for example a slow motion effect.

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

      Specified by:
        `setIsTimeWarp` in interface `OperationDefinition`
      Parameters:
        `isTimeWarp` - Does this operation change the total length of segments in the associated operation group?
      See Also:
        `OperationDefinition.ISTIMEWARP_DEFAULT`

    - #### lookupOperationParameter

          public ParameterDefinition lookupOperationParameter(AUID parameterDefinition)
                                                       throws NullPointerException,
                                                              ObjectNotFoundException

      Description copied from interface: `OperationDefinition`

      Looks up and returns the parameter definition corresponding to the given identifier from the collection of defined parameters of the defined operation.

      Specified by:
        `lookupOperationParameter` in interface `OperationDefinition`
      Parameters:
        `parameterDefinition` - Identity of the parameter definition to look up.
      Returns:
        Matching parameter definition with the given identifier.
      Throws:
        `NullPointerException` - The given identifier for a parameter definition is `null`.
        `ObjectNotFoundException` - The given identifier does not correspond to a parameter definition of the defined operation.

    - #### prependDegradeToOperation

          @MediaListPrepend(value="DegradeTo")
          public void prependDegradeToOperation(OperationDefinition operationDefinition)
                                                                              throws NullPointerException

      Description copied from interface: `OperationDefinition`

      Prepend an operation definition to the degrade-to list of operation definitions of the defined operation, which specify simpler operations that an application can substitute for the defined operation if it cannot process it. Use this function to add an operation definition to be scanned first when searching for a replacement, to be considered as a more desirable alternate operation.

      Specified by:
        `prependDegradeToOperation` in interface `OperationDefinition`
      Parameters:
        `operationDefinition` - Degrade-to operation definition to add.
      Throws:
        `NullPointerException` - The given degrade-to operation definition is `null`.

    - #### removeDegradeToOperationAt

          @MediaListRemoveAt(value="DegradeTo")
          public void removeDegradeToOperationAt(int index)
                                                                                throws IndexOutOfBoundsException

      Description copied from interface: `OperationDefinition`

      Removes the indexed operation definition from the degrade-to list of operation definitions of the defined operation, which specify simpler operations that an application can substitute for the defined operation if it cannot process it. Operation definitions already existing at indices higher than the given index will be moved down to the next lower index to accommodate.

      Specified by:
        `removeDegradeToOperationAt` in interface `OperationDefinition`
      Parameters:
        `index` - 0-based index of operation definition to remove from the degrade-to list of the defined operation
      Throws:
        `IndexOutOfBoundsException` - The index is outside the range acceptable range for the current degrade-to list.

    - #### clone

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

    - #### getOperationCategoryString

          public String getOperationCategoryString()

    - #### setOperationCategoryString

          public void setOperationCategoryString(String operationCategory)

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