From 59f71c64c7fa550ddc1b6816236b6df854d80f17 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Mon, 14 Dec 2015 17:43:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=20=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D0=B0=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ru/dmitriymx/shell/Formatter.java | 9 +++++++++ src/main/java/ru/dmitriymx/shell/Shell.java | 4 ++++ .../ru/dmitriymx/shell/ShellPrintStream.java | 17 +++++++++++++++-- 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 src/main/java/ru/dmitriymx/shell/Formatter.java diff --git a/src/main/java/ru/dmitriymx/shell/Formatter.java b/src/main/java/ru/dmitriymx/shell/Formatter.java new file mode 100644 index 0000000..8b5f96e --- /dev/null +++ b/src/main/java/ru/dmitriymx/shell/Formatter.java @@ -0,0 +1,9 @@ +package ru.dmitriymx.shell; + +/** + * @author DmitriyMX + * 2015 + */ +public interface Formatter { + String format(String s); +} diff --git a/src/main/java/ru/dmitriymx/shell/Shell.java b/src/main/java/ru/dmitriymx/shell/Shell.java index f7ad70f..a55401a 100644 --- a/src/main/java/ru/dmitriymx/shell/Shell.java +++ b/src/main/java/ru/dmitriymx/shell/Shell.java @@ -71,6 +71,10 @@ public class Shell { return run; } + public void setFormatter(Formatter formatter) { + newErr.setFormatter(formatter); + } + /** * Подмена стандартных SysErr и SysOut */ diff --git a/src/main/java/ru/dmitriymx/shell/ShellPrintStream.java b/src/main/java/ru/dmitriymx/shell/ShellPrintStream.java index a7ebfbe..fbc12f6 100644 --- a/src/main/java/ru/dmitriymx/shell/ShellPrintStream.java +++ b/src/main/java/ru/dmitriymx/shell/ShellPrintStream.java @@ -16,6 +16,7 @@ import java.io.PrintWriter; public class ShellPrintStream extends PrintStream { private ConsoleReader consoleReader; private PrintWriter writer; + private Formatter formatter; public ShellPrintStream(OutputStream outputStream) { super(outputStream, true); @@ -29,6 +30,10 @@ public class ShellPrintStream extends PrintStream { } } + public void setFormatter(Formatter formatter) { + this.formatter = formatter; + } + @Override public void print(String s) { println(s); @@ -38,7 +43,11 @@ public class ShellPrintStream extends PrintStream { public void println(String s) { if (consoleReader != null) { writer.print(ConsoleReader.RESET_LINE); - writer.print(s); + if (formatter != null) { + writer.print(formatter.format(s)); + } else { + writer.print(s); + } cleanTrashLine(s); writer.println(); try { @@ -49,7 +58,11 @@ public class ShellPrintStream extends PrintStream { writer.flush(); } else { super.print(ConsoleReader.RESET_LINE); - super.print(s); + if (formatter != null) { + super.print(formatter.format(s)); + } else { + super.print(s); + } } }