# CombiningOperationRequest

# CombiningOperationRequest


```
interface CombiningOperationRequest<FileTypeT : FileSystemLocation>
```

<br />

*** ** * ** ***

## Summary

|                                                                                                                                                                                                                                                                                                                                                                                                            ### Public functions                                                                                                                                                                                                                                                                                                                                                                                                             ||
|------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `<ArtifactTypeT : `[Artifact.Multiple](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/artifact/Artifact.Multiple)`<FileTypeT> & `[Artifact.Transformable](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/artifact/Artifact.Transformable)`> `[toTransform](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/artifact/CombiningOperationRequest#toTransform(com.android.build.api.artifact.Artifact.Multiple))`(` ` type: ArtifactTypeT` `)` Initiates a transform request to a multiple [Artifact.Transformable](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/artifact/Artifact.Transformable) artifact type. |

## Public functions

### toTransform

```
fun <ArtifactTypeT : Artifact.Multiple<FileTypeT> & Artifact.Transformable> toTransform(
    type: ArtifactTypeT
): Unit
```

Initiates a transform request to a multiple [Artifact.Transformable](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/artifact/Artifact.Transformable) artifact type.  

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Parameters                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ||
|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `type: ArtifactTypeT` | The [Artifact](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/artifact/Artifact) of [FileTypeT](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/artifact/CombiningOperationRequest) identifying the artifact to transform. The artifact type must be [Artifact.Multiple](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/artifact/Artifact.Multiple) and [Artifact.Transformable](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/artifact/Artifact.Transformable). The implementation of the task must combine all the inputs into a single output. Chained transforms will get a [ListProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/ListProperty.html) containing the single output from the upstream transform. If some append calls are made on the same artifact type, the first transform will always get the complete list of artifacts irrespective of the timing of the calls. In the following example, let's take a [Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html) to transform a list of [org.gradle.api.file.RegularFile](https://docs.gradle.org/current/javadoc/org/gradle/api/file/RegularFile.html) as inputs into a single output: ```scalate-server-page abstract class MyTask: DefaultTask() { @get:InputFiles abstract val inputFiles: ListProperty<RegularFile> @get:OutputFile abstract val outputFile: RegularFileProperty @TaskAction fun taskAction() { ... read all inputFiles and write outputFile ... } } ``` An [SingleArtifact](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/artifact/SingleArtifact) defined as follows : ```scalate-server-page sealed class ArtifactType<T: FileSystemLocation>(val kind: ArtifactKind) { object MULTIPLE_FILE_ARTIFACT: ArtifactType<RegularFile>(FILE), Multiple, Transformable } ``` You then register the task as follows: ```verilog val taskProvider= projects.tasks.register(MyTask::class.java, "combineTask") artifacts.use(taskProvider) .wiredWith( MyTask::inputFiles, MyTask::outputFile) .toTransform(ArtifactType.MULTIPLE_FILE_ARTIFACT) ``` |