Package com.xebialabs.deployit.plugin.api.reflect

# Interface MethodDescriptor

public interface MethodDescriptor
Encapsulates the metadata about a control task (also named control method) of a type in the XL Deploy type system. Control tasks allow actions to be executed on CIs and can be invoked from the GUI or the CLI. Control tasks specify a list of steps to be executed in order. Control tasks can be parametrized in two ways:

1. by specifying arguments to the control task in the control task configuration
2. by allowing the user to specify parameters to the control task during control task execution

Arguments are configured in the control task definition in the synthetic.xml file. Arguments are specified as attributes on the synthetic method definition XML and are passed as-is to the control task. Parameters are specified by defining a parameters CI type, which needs to extend the `Parameters` CI.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Map<String,String>`
  `getAttributes()`
  `String`
  `getDescription()`
  `String`
  `getFqn()`
  `String`
  `getLabel()`
  `String`
  `getName()`
  `Type`
  `getParameterObjectType()`
  `<T> T`
  `invoke(ConfigurationItem item)`
  `<T> T`
  `invoke(ConfigurationItem item, Parameters params)`

- ## Method Details

  - ### getName

    String getName()
    Returns:
      The name of the control task.

  - ### getLabel

    String getLabel()
    Returns:
      Label text for use in the UI.

  - ### getDescription

    String getDescription()
    Returns:
      Textual description of the control task.

  - ### getAttributes

    Map<String,String> getAttributes()
    Returns:
      A map of arguments to be passed to the method call. An entry key represents the name of the argument, and an entry value is the value of the argument.

  - ### getParameterObjectType

    Type getParameterObjectType()
    Returns:
      The metadata `Type` object about the specified `Parameters` CI.

  - ### invoke

    <T> T invoke(ConfigurationItem item, Parameters params)
    Type Parameters:
      `T` - The type of the returned object.
    Parameters:
      `item` - The `ConfigurationItem` on which to invoke the control task.
      `params` - The specified `Parameters`s.
    Returns:
      The result of execution of type T.

  - ### invoke

    <T> T invoke(ConfigurationItem item)
    Type Parameters:
      `T` - The type of the returned object.
    Parameters:
      `item` - The `ConfigurationItem` on which to invoke the control task.
    Returns:
      The result of execution of type T.

  - ### getFqn

    String getFqn()
    Returns:
      The fully qualified name of the control task. This is the type name followed by a dot and then the control task name. For example: overthere.SshJumpstation.checkConnection