Android 12 Developer Preview is here! Try it out, and give us your feedback!


interface TransformOutputProvider

The output of a transform.

There is no direct access to a location to write. Instead, Transforms can ask to get the location for given scopes, content-types and a format.


Public methods

abstract Unit

Delete all content.

abstract File
getContentLocation(@NonNull name: String, @NonNull types: MutableSet<QualifiedContent.ContentType!>, @NonNull scopes: MutableSet<in QualifiedContent.Scope!>, @NonNull format: Format)

Returns the location of content for a given set of Scopes, Content Types, and Format.

Public methods


abstract fun deleteAll(): Unit

Delete all content. This is useful when running in non-incremental mode

IOException if deleting the output failed.


@NonNull abstract fun getContentLocation(
    @NonNull name: String,
    @NonNull types: MutableSet<QualifiedContent.ContentType!>,
    @NonNull scopes: MutableSet<in QualifiedContent.Scope!>,
    @NonNull format: Format
): File

Returns the location of content for a given set of Scopes, Content Types, and Format.

If the format is Format#DIRECTORY then the result is the file location of the directory.
If the format is Format#JAR then the result is a file representing the jar to create.

Non of the directories or files are created by querying this method, and there is no checks regarding the existence of content in this location.

In case of incremental processing of removed files, it is safe to query the method to get the location of the files to removed.

name String: a unique name for the content. For a given set of scopes/types/format it must be unique.
types MutableSet<QualifiedContent.ContentType!>: the content types associated with this content.
scopes MutableSet<in QualifiedContent.Scope!>: the scopes associated with this content.
format Format: the format of the content.
File: the location of the content.