Package com.xebialabs.deployit.plugin.api.udm

## Annotation Type Delegate

-     @Documented
      @Retention(RUNTIME)
      @Target(METHOD)
      @Inherited
      public @interface Delegate

  A delegate can execute either: - a control task on a `ConfigurationItem`, to perform some action. - a creator method when creating a `ConfigurationItem`

  A @Delegate method should adhere to the following rules:
  - For Control Task:
    - The constructor of the object should take no arguments
    - The method should take the following 3 parameters:
      1. A ConfigurationItem (The item the method is invoked on).
      2. A String (the name of the method invoked).
      3. A Map<String, String> (The attributes of the method invoked).
    - The method should return a List<`Step`>
  - For Creator:
    - The method should be static
    - The method should take the following 1 or 2 parameters:
      1. A CreatorContext.
      2. Optional: A Map<String, String> (The attributes of the method invoked).
    - The method should return void.

- - ### Required Element Summary

    Required Elements
    Modifier and Type | Required Element | Description
    --- | --- | ---
    `java.lang.String` | `name` |

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element | Description
    --- | --- | ---
    `Delegate.Use` | `use` |

- - ### Element Detail

    - #### name

          java.lang.String name

  - - #### use

          Delegate.Use use

      Default:
        com.xebialabs.deployit.plugin.api.udm.Delegate.Use.CONTROL_TASK