Google is committed to advancing racial equity for Black communities. See how.

TaskBasedOperation

@Incubating interface TaskBasedOperation<TaskT : Task>
com.android.build.api.artifact.TaskBasedOperation

Interface with methods to wire input and output method references to Task-based operations.

A Task-based operation will create, transform, or append files or directories to public ArtifactType to customize or participate in the build flow.

Each operation should indicate through the methods of this interface which method can be used to set or retrieve the Task inputs and outputs.

Summary

Public methods

abstract OutOperationRequest<FileTypeT>
wiredWith(taskOutput: (TaskT) -> FileSystemLocationProperty<FileTypeT>)

Sets the TaskT output method reference so the TaskT result can be retrieved after successful task execution.

abstract CombiningOperationRequest<FileTypeT>
wiredWith(taskInput: (TaskT) -> ListProperty<FileTypeT>, taskOutput: (TaskT) -> FileSystemLocationProperty<FileTypeT>)

Sets the TaskT input and output methods references so the Task can retrieve the current versions of a Artifact.MultipleArtifact when invoking taskInput while producing a new version of the same artifact type accessible through the taskOutput method after successful execution.

abstract InAndOutDirectoryOperationRequest<TaskT>
wiredWithDirectories(taskInput: (TaskT) -> DirectoryProperty, taskOutput: (TaskT) -> DirectoryProperty)

Sets the TaskT input and output methods references so the Task can retrieve the current version of the target ArtifactType when invoking taskInput.

abstract InAndOutFileOperationRequest
wiredWithFiles(taskInput: (TaskT) -> RegularFileProperty, taskOutput: (TaskT) -> RegularFileProperty)

Sets the TaskT input and output methods references so the Task can retrieve the current version of the target ArtifactType when invoking taskInput.

Public methods

wiredWith

abstract fun <FileTypeT : FileSystemLocation> wiredWith(taskOutput: (TaskT) -> FileSystemLocationProperty<FileTypeT>): OutOperationRequest<FileTypeT>

Sets the TaskT output method reference so the TaskT result can be retrieved after successful task execution.

This method is useful when creating a new version, when appending to existing artifacts, or when access to the current version of an artifact isn't required.

Parameters
taskOutput: (TaskT) -> FileSystemLocationProperty<FileTypeT> The method reference to retrieve the task output after successful task execution.
Return
The OutOperationRequest to set the desired operation type and ArtifactType on which the operation applies.

wiredWith

abstract fun <FileTypeT : FileSystemLocation> wiredWith(
    taskInput: (TaskT) -> ListProperty<FileTypeT>,
    taskOutput: (TaskT) -> FileSystemLocationProperty<FileTypeT>
): CombiningOperationRequest<FileTypeT>

Sets the TaskT input and output methods references so the Task can retrieve the current versions of a Artifact.MultipleArtifact when invoking taskInput while producing a new version of the same artifact type accessible through the taskOutput method after successful execution.

This method is useful when TaskT is combining all elements of an ArtifactType into a single element.

Parameters
taskInput: (TaskT) -> ListProperty<FileTypeT> The method reference the TaskT will use to retrieve the current artifact versions during TaskT execution (and only then).
taskOutput: (TaskT) -> FileSystemLocationProperty<FileTypeT> The method reference to retrieve the task output after successful task execution.
Return
The CombiningOperationRequest to set the desired operation type and ArtifactType as well as the target ArtifactType.

wiredWithDirectories

abstract fun wiredWithDirectories(
    taskInput: (TaskT) -> DirectoryProperty,
    taskOutput: (TaskT) -> DirectoryProperty
): InAndOutDirectoryOperationRequest<TaskT>

Sets the TaskT input and output methods references so the Task can retrieve the current version of the target ArtifactType when invoking taskInput. TaskT will also produce a new version of the same artifact type accessible through the taskOutput method after successful execution.

This method is useful when TaskT is transforming an ArtifactType from its current version to a new one and the ArtifactType's Artifact.kind is Artifact.DIRECTORY

Parameters
taskInput: (TaskT) -> DirectoryProperty The method reference the TaskT will use to retrieve the current artifact version during TaskT execution (and only then).
taskOutput: (TaskT) -> DirectoryProperty The method reference to retrieve the task output after successful task execution.
Return
The InAndOutDirectoryOperationRequest to set the desired operation type as well as the target ArtifactType.

wiredWithFiles

abstract fun wiredWithFiles(
    taskInput: (TaskT) -> RegularFileProperty,
    taskOutput: (TaskT) -> RegularFileProperty
): InAndOutFileOperationRequest

Sets the TaskT input and output methods references so the Task can retrieve the current version of the target ArtifactType when invoking taskInput. TaskT will also produce a new version of the same artifact type accessible through the taskOutput method after successful execution.

This method is useful when TaskT is transforming an ArtifactType from its current version to a new one and the ArtifactType's Artifact.kind is Artifact.FILE

Parameters
taskInput: (TaskT) -> RegularFileProperty The method reference the TaskT will use to retrieve the current artifact version during TaskT execution (and only then).
taskOutput: (TaskT) -> RegularFileProperty The method reference to retrieve the task output after successful task execution.
Return
The OutOperationRequest to set the desired operation type and ArtifactType as well as the target ArtifactType.