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()) ;
+        }
+    }
 }

Reply via email to