# TransformAction

interface TransformAction<T : TransformParameters?>

Interface for artifact transform actions.

A transform action implementation is an abstract class implementing the transform 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
        }
    }

Content copied to clipboard
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.3

#### Parameters

<T>

Parameter type for the transform action. Should be TransformParameters.None if the action does not have parameters.

## Functions

getParameters
Link copied to clipboard
@Inject
abstract fun getParameters(): T
The object provided by getParameters when registering the artifact transform.
transform
Link copied to clipboard
abstract fun transform(outputs: TransformOutputs)
Executes the transform.