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


Reply via email to