# Interface TransformAction<T extends TransformParameters>

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

public interface TransformAction<T extends TransformParameters>
Interface for artifact transform actions.

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

    import org.gradle.api.artifacts.transform.TransformParameters;

    public abstract class MyTransform implements TransformAction<TransformParameters.None> {
        @InputArtifact
        public abstract Provider<FileSystemLocation> getInputArtifact();

        @Override
        public void transform(TransformOutputs outputs) {
            File input = getInputArtifact().get().getAsFile();
            File output = outputs.file(input.getName() + ".transformed");
            // Do something to generate output from input
        }
    }

Implementations of TransformAction are subject to the following constraints:

- Do not implement `getParameters()` in your class, the method will be implemented by Gradle.
- Implementations may only have a default constructor.

Implementations can receive parameters by using annotated abstract getter methods.

- An abstract getter annotated with `InputArtifact` will receive the input artifact location, which is the file or directory that the transform should be applied to.
- An abstract getter with `InputArtifactDependencies` will receive the dependencies of its input artifact.

Since:
  5.2

- ## Method Summary

  Modifier and Type
  Method
  Description
  `T`
  `getParameters()`
  The object provided by `TransformSpec.getParameters()` when registering the artifact transform.
  `void`
  `transform(TransformOutputs outputs)`
  Executes the transform.

- ## Method Details

  - ### getParameters

    @Inject T getParameters()
    The object provided by `TransformSpec.getParameters()` when registering the artifact transform.

    Do not implement this method in your subclass. Gradle provides the implementation when registering the transform action via `DependencyHandler.registerTransform(Class, Action)`.

  - ### transform

    void transform(TransformOutputs outputs)
    Executes the transform.

    This method must be implemented in the subclass.

    Parameters:
      `outputs` - Receives the outputs of the transform.
    Since:
      5.3