java/sql-dk/src/info/globalcode/sql/dk/formatting/TabularFormatter.java
branchv_0
changeset 218 8e38caf43ca8
parent 207 2bba68ef47c1
child 219 3b1733fb3793
     1.1 --- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/TabularFormatter.java	Sat Aug 15 14:40:48 2015 +0200
     1.2 +++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/TabularFormatter.java	Sat Aug 15 16:12:06 2015 +0200
     1.3 @@ -19,6 +19,7 @@
     1.4  
     1.5  import info.globalcode.sql.dk.ColorfulPrintWriter;
     1.6  import static info.globalcode.sql.dk.ColorfulPrintWriter.*;
     1.7 +import info.globalcode.sql.dk.Functions;
     1.8  import static info.globalcode.sql.dk.Functions.lpad;
     1.9  import static info.globalcode.sql.dk.Functions.rpad;
    1.10  import static info.globalcode.sql.dk.Functions.repeat;
    1.11 @@ -26,8 +27,6 @@
    1.12  import static info.globalcode.sql.dk.formatting.CommonProperties.COLORFUL;
    1.13  import static info.globalcode.sql.dk.formatting.CommonProperties.COLORFUL_DESCRIPTION;
    1.14  import java.util.List;
    1.15 -import java.util.regex.Matcher;
    1.16 -import java.util.regex.Pattern;
    1.17  
    1.18  /**
    1.19   * <p>
    1.20 @@ -53,8 +52,6 @@
    1.21  	private static final String HEADER_TYPE_SUFFIX = ")";
    1.22  	public static final String PROPERTY_ASCII = "ascii";
    1.23  	public static final String PROPERTY_TRIM = "trim";
    1.24 -	private static final String NBSP = " ";
    1.25 -	private static final Pattern whitespaceToReplace = Pattern.compile("\\n|\\r|\\t|" + NBSP);
    1.26  	protected ColorfulPrintWriter out;
    1.27  	private boolean firstResult = true;
    1.28  	private int[] columnWidth;
    1.29 @@ -165,8 +162,7 @@
    1.30  			printTableBorder(" │ ");
    1.31  		}
    1.32  
    1.33 -		String valueString = toString(value);
    1.34 -		printValueWithWhitespaceReplaced(valueString);
    1.35 +		Functions.printValueWithWhitespaceReplaced(out, toString(value), TerminalColor.Cyan, TerminalColor.Red);
    1.36  
    1.37  		if (isCurrentColumnLast()) {
    1.38  			printTableBorder(" │");
    1.39 @@ -277,36 +273,4 @@
    1.40  	protected void printTableIndent() {
    1.41  		out.print(" ");
    1.42  	}
    1.43 -
    1.44 -	protected void printValueWithWhitespaceReplaced(String valueString) {
    1.45 -
    1.46 -		Matcher m = whitespaceToReplace.matcher(valueString);
    1.47 -
    1.48 -		int start = 0;
    1.49 -		while (m.find(start)) {
    1.50 -
    1.51 -			out.print(TerminalColor.Cyan, valueString.substring(start, m.start()));
    1.52 -
    1.53 -			switch (m.group()) {
    1.54 -				case "\n":
    1.55 -					out.print(TerminalColor.Red, "↲");
    1.56 -					break;
    1.57 -				case "\r":
    1.58 -					out.print(TerminalColor.Red, "⏎");
    1.59 -					break;
    1.60 -				case "\t":
    1.61 -					out.print(TerminalColor.Red, "↹");
    1.62 -					break;
    1.63 -				case NBSP:
    1.64 -					out.print(TerminalColor.Red, "⎵");
    1.65 -					break;
    1.66 -				default:
    1.67 -					throw new IllegalStateException("Unexpected whitespace token: „" + m.group() + "“");
    1.68 -			}
    1.69 -
    1.70 -			start = m.end();
    1.71 -		}
    1.72 -
    1.73 -		out.print(TerminalColor.Cyan, valueString.substring(start, valueString.length()));
    1.74 -	}
    1.75  }