Package org.gradle.api.artifacts.transform

## Interface TransformOutputs

-     public interface TransformOutputs

  The outputs of the artifact transform.

  The registered output `File`s will appear in the transformed variant in the order they were registered.

  Since:
    5.3

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.io.File` | `dir​(java.lang.Object path)` | Registers an output directory.
    `java.io.File` | `file​(java.lang.Object path)` | Registers an output file.

- - ### Method Detail

    - #### dir

          java.io.File dir​(java.lang.Object path)

      Registers an output directory.

      For an absolute path, the location is registered as an output directory of the `TransformAction`. The path must to point to the `InputArtifact`, or point inside the input artifact if it is a directory. Example:

           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) {
                   outputs.dir(getInputArtifact().get().getAsFile());
                   outputs.dir(new File(getInputArtifact().get().getAsFile(), "sub-dir"));
               }
           }

      For a relative path, Gradle creates an output directory into which the `TransformAction` must place its output files. Example:

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

           public abstract class MyTransform implements TransformAction<TransformParameters.None> {
               @Override
               public void transform(TransformOutputs outputs) {
                   File myOutput = outputs.dir("my-output");
                   Files.write(myOutput.toPath().resolve("file.txt"), "Generated text");
               }
           }

      Note: it is an error if the registered directory does not exist when the `TransformAction.transform(TransformOutputs)` method finishes.

      Parameters:
        `path` - path of the output directory
      Returns:
        determined location of the output

    - #### file

          java.io.File file​(java.lang.Object path)

      Registers an output file.

      For an absolute path, the location is registered as an output file of the `TransformAction`. The path is required to point to the `InputArtifact` or be inside it if the input artifact is a directory. Example:

           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();
                   if (input.isFile()) {
                       outputs.file(input);
                   } else {
                       outputs.file(new File(input, "file-in-input-artifact.txt"));
                   }
               }
           }

      For a relative path, a location for the output file is provided by Gradle, so that the `TransformAction` can produce its outputs at that location. The parent directory of the provided location is created automatically when calling the method. Example:

           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 myOutput = outputs.file("my-output.transformed");
                   Files.write(myOutput.toPath(), "Generated text");
               }
           }

      The registered file needs to exist when the `TransformAction.transform(TransformOutputs)` method finishes.

      Parameters:
        `path` - path of the output file
      Returns:
        determined location of the output