Repository: jena Updated Branches: refs/heads/master 16da6c34c -> 61368dfa0
Add feature to set a line prefix string. Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/c98382f4 Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/c98382f4 Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/c98382f4 Branch: refs/heads/master Commit: c98382f4b927fdd955ca4623edd03c5b3cf66bac Parents: 16da6c3 Author: Andy Seaborne <[email protected]> Authored: Tue Aug 2 08:45:44 2016 +0100 Committer: Andy Seaborne <[email protected]> Committed: Tue Aug 2 08:45:44 2016 +0100 ---------------------------------------------------------------------- .../apache/jena/atlas/io/IndentedWriter.java | 13 +++- .../jena/atlas/io/TestIndentedWriter.java | 70 +++++++++++++++----- 2 files changed, 66 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/c98382f4/jena-base/src/main/java/org/apache/jena/atlas/io/IndentedWriter.java ---------------------------------------------------------------------- diff --git a/jena-base/src/main/java/org/apache/jena/atlas/io/IndentedWriter.java b/jena-base/src/main/java/org/apache/jena/atlas/io/IndentedWriter.java index 0cbc7ff..ba4282d 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/io/IndentedWriter.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/io/IndentedWriter.java @@ -56,6 +56,8 @@ public class IndentedWriter extends AWriterBase implements AWriter, Closeable private char padChar = ' ' ; private String endOfLineMarker = null ; // Null means none. private String padString = null ; + private String linePrefix = null ; + protected boolean flatMode = false ; private boolean flushOnNewline = false ; @@ -309,6 +311,9 @@ public class IndentedWriter extends AWriterBase implements AWriter, Closeable public void setPadChar(char ch) { this.padChar = ch ; } public String getPadString() { return padString ; } public void setPadString(String str) { this.padString = str ; unitIndent = str.length(); } + /** */ + public String getLinePrefix() { return linePrefix ; } + public void setLinePrefix(String str) { this.linePrefix = str ; } public void incIndent() { incIndent(unitIndent) ; } public void incIndent(int x) @@ -326,6 +331,7 @@ public class IndentedWriter extends AWriterBase implements AWriter, Closeable public int getUnitIndent() { return unitIndent ; } public boolean atLineStart() { return startingNewLine ; } + // A line is prefix?number?content. private void lineStart() { if ( flatMode ) @@ -338,9 +344,12 @@ public class IndentedWriter extends AWriterBase implements AWriter, Closeable } // Need to do its just before we append anything, not after a NL, - // so that a final blank does not cause a line number - if ( startingNewLine ) + // so that a final blank does not cause a prefix or line number. + if ( startingNewLine ) { + if ( linePrefix != null ) + write$(linePrefix) ; insertLineNumber() ; + } padInternal() ; startingNewLine = false ; } http://git-wip-us.apache.org/repos/asf/jena/blob/c98382f4/jena-base/src/test/java/org/apache/jena/atlas/io/TestIndentedWriter.java ---------------------------------------------------------------------- diff --git a/jena-base/src/test/java/org/apache/jena/atlas/io/TestIndentedWriter.java b/jena-base/src/test/java/org/apache/jena/atlas/io/TestIndentedWriter.java index 77608d4..05f6bce 100644 --- a/jena-base/src/test/java/org/apache/jena/atlas/io/TestIndentedWriter.java +++ b/jena-base/src/test/java/org/apache/jena/atlas/io/TestIndentedWriter.java @@ -16,26 +16,26 @@ * limitations under the License. */ -package org.apache.jena.atlas.io; +package org.apache.jena.atlas.io ; import org.apache.jena.atlas.io.IndentedLineBuffer ; -import org.apache.jena.atlas.junit.BaseTest ; import org.junit.Test ; +import static org.junit.Assert.* ; -public class TestIndentedWriter extends BaseTest -{ - @Test public void write01() - { - try(IndentedLineBuffer b = new IndentedLineBuffer()) { +public class TestIndentedWriter { + + @Test + public void write01() { + try (IndentedLineBuffer b = new IndentedLineBuffer()) { b.print("hell") ; b.print("o") ; assertEquals("hello", b.asString()) ; } } - - @Test public void write02() - { - try(IndentedLineBuffer b = new IndentedLineBuffer()) { + + @Test + public void write02() { + try (IndentedLineBuffer b = new IndentedLineBuffer()) { b.incIndent() ; b.print("hell") ; b.print("o") ; @@ -43,10 +43,10 @@ public class TestIndentedWriter extends BaseTest assertEquals(" hello", b.asString()) ; } } - - @Test public void write03() - { - try(IndentedLineBuffer b = new IndentedLineBuffer()) { + + @Test + public void write03() { + try (IndentedLineBuffer b = new IndentedLineBuffer()) { b.incIndent() ; b.printf("0x%04X", 1) ; b.println() ; @@ -55,4 +55,44 @@ public class TestIndentedWriter extends BaseTest assertEquals(" 0x0001\n XX", b.asString()) ; } } + + @Test + public void write04() { + try (IndentedLineBuffer b = new IndentedLineBuffer()) { + b.setLineNumbers(true); + b.println("ABCD") ; + b.print("XYZ") ; + assertEquals(" 1 ABCD\n 2 XYZ", b.asString()) ; + } + } + + @Test + public void write05() { + try (IndentedLineBuffer b = new IndentedLineBuffer()) { + b.setLineNumbers(true); + b.println("ABCD") ; + b.println("XYZ") ; + assertEquals(" 1 ABCD\n 2 XYZ\n", b.asString()) ; + } + } + + + @Test + public void write06() { + try (IndentedLineBuffer b = new IndentedLineBuffer()) { + b.setLinePrefix("@."); + b.println("ABCD") ; + b.print("XYZ") ; + assertEquals("@.ABCD\[email protected]", b.asString()) ; + } + } + + @Test + public void write07() { + try (IndentedLineBuffer b = new IndentedLineBuffer()) { + b.setLinePrefix("@."); + b.println("ABCD") ; + assertEquals("@.ABCD\n", b.asString()) ; + } + } }
