getToCode method

CodePartDj getToCode(
  1. List<FieldDj> fields
)

Implementation

CodePartDj getToCode(List<FieldDj> fields) {
  var bodyCodeLines = <String>["codeLines.add('$name( '); "];
  fields.forEach((field) {
    if (field.name != 'baseWidgetDjType' &&
        !(field.name?.startsWith('_') ?? false)) {
      bodyCodeLines.add('if(${field.name} != null) { ');
      var fieldValue = '\${dynamicParameterParser(${field.name})}';
      if (field.isOptional ?? false) {
        bodyCodeLines.add("codeLines.add('${field.name} : $fieldValue, '); ");
      } else {
        bodyCodeLines.add("codeLines.add('$fieldValue, '); ");
      }
      bodyCodeLines.add('}');
    }
  });
  bodyCodeLines.add("codeLines.add(') '); ");

  List<CodePartDj>? bodyCodeParts = [
    VariableDeclarationDj(
      dataType: VariableType.Var,
      name: 'codeLines',
      initialValue: '<String>[]',
    ),
  ];
  bodyCodeParts += bodyCodeLines.map((e) => SingleLineDj(line: e)).toList();
  bodyCodeParts.add(
    ReturnDj(
      returnStr: 'codeLines',
    ),
  );

  CodePartDj codePartDj = FunctionDj(
    annotations: ['override'],
    outputType: VariableType.ListString,
    name: 'toCode',
    bodyCodeParts: bodyCodeParts,
  );

  return codePartDj;
}