getSuperConstructor function

Code getSuperConstructor(
  1. List parameters,
  2. Class target
)

Implementation

Code getSuperConstructor(List<dynamic> parameters, Class target) {
  StringBuffer buffer = StringBuffer();

  buffer.writeln('super(key: key,');

  for (var field in target.fields) {
    buffer.writeln(
        '${field.name}: context.knobs.${getKnobType(parameters, field)},');

    // if a parameter was used, pop it from the list
    if (field.type!.symbol == 'int') {
      parameters.remove(
          parameters.firstWhere((element) => element is SliderIntParameter));
    } else if (field.type!.symbol == 'double') {
      parameters.remove(
          parameters.firstWhere((element) => element is SliderParameter));
    }
    // else {
    //   parameters.remove(
    //       parameters.firstWhere((element) => element is OptionsParameter));
    // }
  }

  buffer.writeln(')');

  return Code(buffer.toString());
}