Example #1
0
  @Override
  public void toFileString(final BufferedWriter bw, int depth, Style style) throws IOException {

    if (name.equals("root")) {
      toFileString(bw, style);
      return;
    }

    final boolean parentSameLine = style.isInline(parent);
    final boolean sameLine = parentSameLine || style.isInline(this);

    if (!parentSameLine && headComment != null) {
      headComment.toFileString(bw, depth, style);
    }

    final String localtab = (parentSameLine ? "" : style.getTab(depth));

    bw.write(localtab);

    if (!"".equals(name)) {
      bw.write(name);
      style.printEqualsSign(bw, depth);
      style.printOpeningBrace(bw, depth);
    } else {
      style.printOpeningBrace(bw, depth);
    }

    if (!sameLine) bw.newLine();

    for (WritableObject obj : allWritable) {
      if (obj instanceof ObjectVariable || obj instanceof Comment) {
        if (!sameLine) {
          style.printTab(bw, depth + 1);
        }
      }

      obj.toFileString(bw, depth + 1, style);

      if (sameLine) bw.write(' ');
      else bw.newLine();
    }

    if (parentSameLine) {
      bw.write('}');
    } else if (sameLine) {
      bw.write("} ");
      if (inlineComment != null) inlineComment.toFileString(bw, depth, style);
    } else {
      bw.write(localtab + "}");
      if (inlineComment != null) {
        bw.write(" ");
        inlineComment.toFileString(bw, depth, style);
      }
      if (style.newLineAfterObject()) bw.newLine();
    }
  }