transformField method

  1. @override
DogStructureField transformField(
  1. DogStructureField field,
  2. SchemaType schema
)
override

May be used to transform the generated DogStructureField before it is added to the DogStructure.

Implementation

@override
DogStructureField transformField(DogStructureField field, SchemaType schema) {
  String? itemLabel;
  String? addButtonLabel;
  bool isModified = false;

  if (schema.properties.containsKey(DogsFlutterSchemaTags.listBindingItemLabel)) {
    var value = schema[DogsFlutterSchemaTags.listBindingItemLabel] as String?;
    itemLabel = value;
    isModified = true;
  }

  if (schema.properties.containsKey(DogsFlutterSchemaTags.listBindingAddButtonLabel)) {
    var value = schema[DogsFlutterSchemaTags.listBindingAddButtonLabel] as String?;
    addButtonLabel = value;
    isModified = true;
  }

  if (schema.type == SchemaCoreType.array && isModified) {
    field = field.copy(
      annotations:
          field.annotations +
          [ListBindingStyle(itemLabel: itemLabel, addButtonLabel: addButtonLabel)],
    );
  }

  return field;
}