# Interface WorkAction<T extends WorkParameters>

Type Parameters:
  `T` - Parameter type for the work action. Should be `WorkParameters.None` if the action does not have parameters.

All Known Implementing Classes:
  `PrefixHeaderFileGenerateTask.GeneratePrefixHeaderFile`

public interface WorkAction<T extends WorkParameters>
Represents the implementation of a unit of work to be used when submitting work to the `WorkerExecutor`.

A work action implementation is an abstract class implementing the `execute()` method. A minimal implementation may look like this:

    import org.gradle.workers.WorkParameters;

    public abstract class MyWorkAction implements WorkAction<WorkParameters.None> {
        private final String greeting;

        @Inject
        public MyWorkAction() {
            this.greeting = "hello";
        }

        @Override
        public void execute() {
            System.out.println(greeting);
        }
    }

Implementations of WorkAction are subject to the following constraints:

- Do not implement `getParameters()` in your class, the method will be implemented by Gradle.
- Constructors must be annotated with `Inject`.

Since:
  5.6

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `execute()`
  The work to perform when this work item executes.
  `T`
  `getParameters()`
  The parameters associated with a concrete work item.

- ## Method Details

  - ### getParameters

    @Inject T getParameters()
    The parameters associated with a concrete work item.

  - ### execute

    void execute()
    The work to perform when this work item executes.
    Since:
      5.6