copyWith method
Creates a copy of this Arguments instance with selective updates.
This method provides immutable update capabilities by creating a new
Arguments instance with values from the provided data parameter,
falling back to current instance values where data doesn't specify
new values. This supports configuration inheritance and modification.
Parameters
data- Optional Arguments instance containing updated values
Returns
Returns a new BuildArguments instance (as Arguments) with:
- Values from
datawhere specified - Current instance values where
datais null or doesn't specify - All original configuration preserved for unspecified parameters
Example
final baseArgs = Arguments(variables, binaryType: 'apk', buildMode: 'debug');
final releaseArgs = Arguments(variables, buildMode: 'release');
// Create release version with base configuration
final updatedArgs = baseArgs.copyWith(releaseArgs);
// Result: APK binary type with release build mode
Implementation
BuildArguments copyWith(Arguments? data) {
return Arguments(
data?.variables ?? variables,
buildMode: data?.buildMode ?? buildMode,
binaryType: data?.binaryType ?? binaryType,
customArgs: data?.customArgs ?? customArgs,
target: data?.target ?? target,
flavor: data?.flavor ?? flavor,
dartDefines: data?.dartDefines ?? dartDefines,
dartDefinesFile: data?.dartDefinesFile ?? dartDefinesFile,
buildName: data?.buildName ?? buildName,
buildNumber: data?.buildNumber ?? buildNumber,
pub: data?.pub ?? pub,
output: data?.output ?? output,
buildSourceDir: data?.buildSourceDir ?? buildSourceDir,
);
}