merge method

Merges this builder definition with an override.

Creates a new builder definition that incorporates the overridden values from the provided override object. Non-null values in the override take precedence over values in this definition.

@param override The builder override to apply @return A new builder definition with merged values

Implementation

BuilderDefinitionEntry merge(BuilderOverride override) {
  final Map<String, dynamic> mergedOptions = options ?? <String, dynamic>{};
  if (override.options != null) {
    mergedOptions.addAll(override.options!);
  }
  return BuilderDefinitionEntry(
    key: key,
    import: import,
    generatorName: generatorName,
    generateToCache: generateToCache,
    options: mergedOptions.isEmpty ? null : mergedOptions,
    generateFor: override.generateFor ?? generateFor,
    runsBefore: override.runsBefore ?? runsBefore,
    builderType: builderType,
    expectsOptions: expectsOptions,
    registeredTypes: registeredTypes,
  );
}