You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2011/03/23 17:57:06 UTC
svn commit: r1084636 -
/commons/proper/net/trunk/src/main/java/org/apache/commons/net/PrintCommandListener.java
Author: sebb
Date: Wed Mar 23 16:57:06 2011
New Revision: 1084636
URL: http://svn.apache.org/viewvc?rev=1084636&view=rev
Log:
Add optional direction marker
Modified:
commons/proper/net/trunk/src/main/java/org/apache/commons/net/PrintCommandListener.java
Modified: commons/proper/net/trunk/src/main/java/org/apache/commons/net/PrintCommandListener.java
URL: http://svn.apache.org/viewvc/commons/proper/net/trunk/src/main/java/org/apache/commons/net/PrintCommandListener.java?rev=1084636&r1=1084635&r2=1084636&view=diff
==============================================================================
--- commons/proper/net/trunk/src/main/java/org/apache/commons/net/PrintCommandListener.java (original)
+++ commons/proper/net/trunk/src/main/java/org/apache/commons/net/PrintCommandListener.java Wed Mar 23 16:57:06 2011
@@ -36,6 +36,7 @@ public class PrintCommandListener implem
private final PrintWriter __writer;
private final boolean __nologin;
private final char __eolMarker;
+ private final boolean __directionMarker;
/**
* Create the default instance which prints everything.
@@ -77,6 +78,21 @@ public class PrintCommandListener implem
}
/**
+ * Create an instance which optionally suppresses login command text
+ * and indicates where the EOL starts with the specified character.
+ *
+ * @param stream where to write the commands and responses
+ * @param suppressLogin if {@code true}, only print command name for login
+ * @param eolMarker if non-zero, add a marker just before the EOL.
+ * @param showDirection if {@code true}, add "> " or "< " as appropriate to the output
+ *
+ * @since 3.0
+ */
+ public PrintCommandListener(PrintStream stream, boolean suppressLogin, char eolMarker, boolean showDirection) {
+ this(new PrintWriter(stream), suppressLogin, eolMarker, showDirection);
+ }
+
+ /**
* Create the default instance which prints everything.
*
* @param writer where to write the commands and responses
@@ -111,13 +127,33 @@ public class PrintCommandListener implem
*/
public PrintCommandListener(PrintWriter writer, boolean suppressLogin, char eolMarker)
{
+ this(writer, suppressLogin, eolMarker, false);
+ }
+
+ /**
+ * Create an instance which optionally suppresses login command text
+ * and indicates where the EOL starts with the specified character.
+ *
+ * @param writer where to write the commands and responses
+ * @param suppressLogin if {@code true}, only print command name for login
+ * @param eolMarker if non-zero, add a marker just before the EOL.
+ * @param showDirection if {@code true}, add "> " or "< " as appropriate to the output
+ *
+ * @since 3.0
+ */
+ public PrintCommandListener(PrintWriter writer, boolean suppressLogin, char eolMarker, boolean showDirection)
+ {
__writer = writer;
__nologin = suppressLogin;
__eolMarker = eolMarker;
+ __directionMarker = showDirection;
}
public void protocolCommandSent(ProtocolCommandEvent event)
{
+ if (__directionMarker) {
+ __writer.print("> ");
+ }
if (__nologin) {
String cmd = event.getCommand();
if ("PASS".equalsIgnoreCase(cmd) || "USER".equalsIgnoreCase(cmd)) {
@@ -156,6 +192,9 @@ public class PrintCommandListener implem
}
public void protocolReplyReceived(ProtocolCommandEvent event)
{
+ if (__directionMarker) {
+ __writer.print("< ");
+ }
__writer.print(event.getMessage());
__writer.flush();
}