public void printlnComment(String comment) {
        if (this.strategy.isCommentingDisabled()) {
            return;
        }
        if (!newLine) {
            out.println();
        }
        out.print(this.strategy.getCommentStart());
        out.print(' ');
        for (int i = 0; i < comment.length(); i++) {
            char c = comment.charAt(i);
            switch (c) {
                case '\r':
                    if (i + 1 < comment.length() && comment.charAt(i + 1) == '\n') {
                        i++;
                    }
                // break intentionally excluded.
                case '\n':
                    out.println();
                    out.print(this.strategy.getCommentStart());
                    out.print(' ');
                    break;
                default:
                    out.print(c);
                    break;
            }
        }
        out.println();
        out.flush();
        newLine = true;
    }