--- a/src/jdk.rmic/share/classes/sun/rmi/rmic/newrmic/IndentingWriter.java Mon Nov 06 19:45:47 2017 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,291 +0,0 @@
-/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.rmi.rmic.newrmic;
-
-import java.io.Writer;
-import java.io.BufferedWriter;
-import java.io.IOException;
-
-/**
- * A BufferedWriter that supports automatic indentation of lines of
- * text written to the underlying Writer.
- *
- * Methods are provided for compact/convenient indenting in and out,
- * writing text, and writing lines of text in various combinations.
- *
- * WARNING: The contents of this source file are not part of any
- * supported API. Code that depends on them does so at its own risk:
- * they are subject to change or removal without notice.
- *
- * @author Peter Jones
- **/
-public class IndentingWriter extends BufferedWriter {
-
- /** number of spaces to change indent when indenting in or out */
- private final int indentStep;
-
- /** number of spaces to convert into tabs (use MAX_VALUE to disable) */
- private final int tabSize;
-
- /** true if the next character written is the first on a line */
- private boolean beginningOfLine = true;
-
- /** current number of spaces to prepend to lines */
- private int currentIndent = 0;
-
- /**
- * Creates a new IndentingWriter that writes indented text to the
- * given Writer. Use the default indent step of four spaces.
- **/
- public IndentingWriter(Writer out) {
- this(out, 4);
- }
-
- /**
- * Creates a new IndentingWriter that writes indented text to the
- * given Writer and uses the supplied indent step.
- **/
- public IndentingWriter(Writer out, int indentStep) {
- this(out, indentStep, 8);
- }
-
- /**
- * Creates a new IndentingWriter that writes indented text to the
- * given Writer and uses the supplied indent step and tab size.
- **/
- public IndentingWriter(Writer out, int indentStep, int tabSize) {
- super(out);
- if (indentStep < 0) {
- throw new IllegalArgumentException("negative indent step");
- }
- if (tabSize < 0) {
- throw new IllegalArgumentException("negative tab size");
- }
- this.indentStep = indentStep;
- this.tabSize = tabSize;
- }
-
- /**
- * Writes a single character.
- **/
- public void write(int c) throws IOException {
- checkWrite();
- super.write(c);
- }
-
- /**
- * Writes a portion of an array of characters.
- **/
- public void write(char[] cbuf, int off, int len) throws IOException {
- if (len > 0) {
- checkWrite();
- }
- super.write(cbuf, off, len);
- }
-
- /**
- * Writes a portion of a String.
- **/
- public void write(String s, int off, int len) throws IOException {
- if (len > 0) {
- checkWrite();
- }
- super.write(s, off, len);
- }
-
- /**
- * Writes a line separator. The next character written will be
- * preceded by an indent.
- **/
- public void newLine() throws IOException {
- super.newLine();
- beginningOfLine = true;
- }
-
- /**
- * Checks if an indent needs to be written before writing the next
- * character.
- *
- * The indent generation is optimized (and made consistent with
- * certain coding conventions) by condensing groups of eight
- * spaces into tab characters.
- **/
- protected void checkWrite() throws IOException {
- if (beginningOfLine) {
- beginningOfLine = false;
- int i = currentIndent;
- while (i >= tabSize) {
- super.write('\t');
- i -= tabSize;
- }
- while (i > 0) {
- super.write(' ');
- i--;
- }
- }
- }
-
- /**
- * Increases the current indent by the indent step.
- **/
- protected void indentIn() {
- currentIndent += indentStep;
- }
-
- /**
- * Decreases the current indent by the indent step.
- **/
- protected void indentOut() {
- currentIndent -= indentStep;
- if (currentIndent < 0)
- currentIndent = 0;
- }
-
- /**
- * Indents in.
- **/
- public void pI() {
- indentIn();
- }
-
- /**
- * Indents out.
- **/
- public void pO() {
- indentOut();
- }
-
- /**
- * Writes string.
- **/
- public void p(String s) throws IOException {
- write(s);
- }
-
- /**
- * Ends current line.
- **/
- public void pln() throws IOException {
- newLine();
- }
-
- /**
- * Writes string; ends current line.
- **/
- public void pln(String s) throws IOException {
- p(s);
- pln();
- }
-
- /**
- * Writes string; ends current line; indents in.
- **/
- public void plnI(String s) throws IOException {
- p(s);
- pln();
- pI();
- }
-
- /**
- * Indents out; writes string.
- **/
- public void pO(String s) throws IOException {
- pO();
- p(s);
- }
-
- /**
- * Indents out; writes string; ends current line.
- **/
- public void pOln(String s) throws IOException {
- pO(s);
- pln();
- }
-
- /**
- * Indents out; writes string; ends current line; indents in.
- *
- * This method is useful for generating lines of code that both
- * end and begin nested blocks, like "} else {".
- **/
- public void pOlnI(String s) throws IOException {
- pO(s);
- pln();
- pI();
- }
-
- /**
- * Writes object.
- **/
- public void p(Object o) throws IOException {
- write(o.toString());
- }
-
- /**
- * Writes object; ends current line.
- **/
- public void pln(Object o) throws IOException {
- p(o.toString());
- pln();
- }
-
- /**
- * Writes object; ends current line; indents in.
- **/
- public void plnI(Object o) throws IOException {
- p(o.toString());
- pln();
- pI();
- }
-
- /**
- * Indents out; writes object.
- **/
- public void pO(Object o) throws IOException {
- pO();
- p(o.toString());
- }
-
- /**
- * Indents out; writes object; ends current line.
- **/
- public void pOln(Object o) throws IOException {
- pO(o.toString());
- pln();
- }
-
- /**
- * Indents out; writes object; ends current line; indents in.
- *
- * This method is useful for generating lines of code that both
- * end and begin nested blocks, like "} else {".
- **/
- public void pOlnI(Object o) throws IOException {
- pO(o.toString());
- pln();
- pI();
- }
-}