# InAndOutFileOperationRequest

[View Source](https://cs.android.com/search?q=file:com/android/build/api/artifact/OperationRequests.kt+class:com.android.build.api.artifact.InAndOutFileOperationRequest) Added in 4.2.0


```
interface InAndOutFileOperationRequest
```

<br />

*** ** * ** ***

Operations performed by a `https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html` with a single `https://docs.gradle.org/current/javadoc/org/gradle/api/file/RegularFile.html` output.

`https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html` is consuming existing version of the target `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/SingleArtifact` and producing a new version.

## Summary

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `<ArtifactTypeT : https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/Artifact.Single<https://docs.gradle.org/current/javadoc/org/gradle/api/file/RegularFile.html> & https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/Artifact.Transformable> https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/InAndOutFileOperationRequest#toTransform(com.android.build.api.artifact.Artifact.Single)( type: ArtifactTypeT )` Initiates a transform request to a single `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/Artifact.Transformable` artifact type. |
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/InAndOutFileOperationRequest` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/InAndOutFileOperationRequest#withName(kotlin.String)(name: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` Sets the output file name for the transformed artifact. |

## Public functions

### toTransform

Added in 7.0.0

```
fun <ArtifactTypeT : Artifact.Single<RegularFile> & Artifact.Transformable> toTransform(
    type: ArtifactTypeT
): Unit
```

Initiates a transform request to a single `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/Artifact.Transformable` artifact type.

| Parameters |
|---|---|
| `type: ArtifactTypeT` | The `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/Artifact` identifying the artifact to transform. The `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/Artifact`'s `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/Artifact#kind()` must be `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/Artifact#FILE()`. The artifact type must be `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/Artifact.Single` and `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/Artifact.Transformable`. As an example, let's take a `https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html` transforming an input `https://docs.gradle.org/current/javadoc/org/gradle/api/file/RegularFile.html` into an output: ``` abstract class MyTask: DefaultTask() { @get:InputFile abstract val inputFile: RegularFileProperty @get:OutputFile abstract val outputFile: RegularFileProperty @TaskAction fun taskAction() { ... read inputFile and write outputFile ... } } ``` An ArtifactType defined as follows: ``` sealed class ArtifactType<T: FileSystemLocation>(val kind: ArtifactKind) { object SINGLE_FILE_ARTIFACT: ArtifactType<RegularFile>(FILE), Single, Transformable } ``` You can register a transform to the collection of `https://docs.gradle.org/current/javadoc/org/gradle/api/file/RegularFile.html`. ``` val taskProvider= projects.tasks.register(MyTask::class.java, "transformTask") artifacts.use(taskProvider) .wiredWithFiles( MyTask::inputFile, MyTask::outputFile) .toTransform(ArtifactType.SINGLE_FILE_ARTIFACT) ``` |

### withName

Added in 8.4.0

```
fun withName(name: String): InAndOutFileOperationRequest
```

Sets the output file name for the transformed artifact.

| Parameters |
|---|---|
| `name: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | file name in the output folder. |

| Returns |
|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/artifact/InAndOutFileOperationRequest` | itself |