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

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Map<java.lang.String,​java.lang.String>` | `getAttributes()` |
    `java.lang.String` | `getDescription()` |
    `java.lang.String` | `getFqn()` |
    `java.lang.String` | `getLabel()` |
    `java.lang.String` | `getName()` |
    `Type` | `getParameterObjectType()` |
    `<T> T` | `invoke​(ConfigurationItem item)` |
    `<T> T` | `invoke​(ConfigurationItem item, Parameters params)` |

- - ### Method Detail

    - #### getName

          java.lang.String getName()

      Returns:
        The name of the control task.

    - #### getLabel

          java.lang.String getLabel()

      Returns:
        Label text for use in the UI.

    - #### getDescription

          java.lang.String getDescription()

      Returns:
        Textual description of the control task.

    - #### getAttributes

          java.util.Map<java.lang.String,​java.lang.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

          java.lang.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