public get string()

in packages/appsync-modelgen-plugin/src/languages/dart-declaration-block.ts [125:171]


  public get string(): string {
      let result = '';
      if(this._kind) {
        let name = '';

        if (this._name) {
          name = this._name;
        }

        let extendsStr = '';
        let implementsStr = '';
        let extensionStr = '';
        let annotatesStr = '';

        if (this._extendStr.length > 0) {
          extendsStr = ` extends ${this._extendStr.join(', ')}`;
        }

        if (this._implementsStr.length > 0) {
          implementsStr = ` implements ${this._implementsStr.join(', ')}`;
        }

        if(this._extensionType) {
          extensionStr = ` on ${this._extensionType}`;
        }

        if (this._annotations.length > 0) {
          annotatesStr = this._annotations.map(a => `@${a}`).join('\n') + '\n';
        }

        result += `${annotatesStr}${this._kind} ${name}${extendsStr}${implementsStr}${extensionStr} `;
      }
      const members = this._members.length
        ? indentMultiline(stripIndent(this._members.map(member => this.printMember(member) + ';').join('\n')))
        : null;
      const methods = this._methods.length
        ? indentMultiline(stripIndent(this._methods.map(method => this.printMethod(method)).join('\n\n')))
        : null;
      const blocks = this._blocks.length ? this._blocks.map(b =>
          b._kind ? indentMultiline(b.string) : b.string).join('\n\n') : null;
      const before = this._kind ? '{' : '';
      const after = this._kind ? '}' : '';
      const blockStr = [members, methods, blocks].filter(f => f).join('\n\n');
      result += [before, blockStr, after].filter(f => f).join('\n');

      return (this._comment ? this._comment : '') + result;
  }