protected generateToStringMethod()

in packages/appsync-modelgen-plugin/src/visitors/appsync-dart-visitor.ts [464:515]


  protected generateToStringMethod(model: CodeGenModel, declarationBlock: DartDeclarationBlock): void {
    //toString
    const fields = this.getNonConnectedField(model);
    declarationBlock.addClassMethod(
      'toString',
      'String',
      [],
      [
        'var buffer = new StringBuffer();',
        '',
        `buffer.write("${this.getModelName(model)} {");`,
        ...fields.map((field, index) => {
          const fieldDelimiter = ', ';
          const varName = this.getFieldName(field);
          const fieldName = `${this.isNullSafety() && field.name !== 'id' ? '_' : ''}${this.getFieldName(field)}`;
          let toStringVal = '';
          if (this.isEnumType(field)) {
            if (field.isList) {
              toStringVal = this.isNullSafety()
                ? `(${fieldName} != null ? ${fieldName}!.map((e) => enumToString(e)).toString() : "null")`
                : `${fieldName}?.map((e) => enumToString(e)).toString()`;
            } else {
              toStringVal = `(${fieldName} != null ? enumToString(${fieldName})${this.isNullSafety() ? '!' : ''} : "null")`;
            }
          } else {
            const fieldNativeType = this.getNativeType(field);
            switch (fieldNativeType) {
              case 'String':
                toStringVal = `"$${fieldName}"`;
                break;
              case this.scalars['AWSDate']:
              case this.scalars['AWSTime']:
              case this.scalars['AWSDateTime']:
                toStringVal = `(${fieldName} != null ? ${fieldName}${this.isNullSafety() ? '!' : ''}.format() : "null")`;
                break;
              default:
                toStringVal = `(${fieldName} != null ? ${fieldName}${this.isNullSafety() ? '!' : ''}.toString() : "null")`;
            }
          }
          if (index !== fields.length - 1) {
            return `buffer.write("${varName}=" + ${toStringVal} + "${fieldDelimiter}");`;
          }
          return `buffer.write("${varName}=" + ${toStringVal});`;
        }),
        `buffer.write("}");`,
        '',
        'return buffer.toString();',
      ].join('\n'),
      undefined,
      ['override'],
    );
  }