package com.tinkerpop.gremlin.groovy.console; import org.codehaus.groovy.tools.shell.IO; /** * Wrapper for the standard IO that is sent to the plugin so that the plugin name can be appended to the start of * any writing to the console that the plugin does. * * @author Stephen Mallette (http://stephen.genoprime.com) */ public class ConsoleIO { private final IO io; private final ConsolePlugin plugin; private boolean startedWrite = false; public ConsoleIO(final ConsolePlugin plugin, final IO io) { this.io = io; this.plugin = plugin; } public void println() { writeLn(""); } public void println(final boolean b) { writeLn(String.valueOf(b)); } public void println(final char c) { writeLn(String.valueOf(c)); } public void println(final int i) { writeLn(String.valueOf(i)); } public void println(final long x) { writeLn(String.valueOf(x)); } public void println(final float f) { writeLn(String.valueOf(f)); } public void println(final double d) { writeLn(String.valueOf(d)); } public void println(final char[] s) { writeLn(new String(s)); } public void println(final String s) { writeLn(s); } public void println(final Object x){ writeLn(String.valueOf(x)); } public void print(final boolean b) { write(String.valueOf(b)); } public void print(final char c) { write(String.valueOf(c)); } public void print(final int i) { write(String.valueOf(i)); } public void print(final long x) { write(String.valueOf(x)); } public void print(final float f) { write(String.valueOf(f)); } public void print(final double d) { write(String.valueOf(d)); } public void print(final char[] s) { write(new String(s)); } public void print(final String s) { write(s); } public void print(final Object x) { write(String.valueOf(x)); } private void write(final String s) { if (startedWrite) io.out.print(s); else io.out.print(String.format("%s[%s] %s", Console.STANDARD_RESULT_PROMPT, this.plugin.getName(), s)); startedWrite = true; } private void writeLn(final String s) { write(s); io.out.println(); startedWrite = false; } }