You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2011/11/21 21:41:20 UTC

svn commit: r1204691 - in /james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api: FutureResponseImpl.java FutureStreamResponseImpl.java StartTlsFutureResponse.java

Author: norman
Date: Mon Nov 21 20:41:19 2011
New Revision: 1204691

URL: http://svn.apache.org/viewvc?rev=1204691&view=rev
Log:
Make FutureResponseImpl more easy to use

Modified:
    james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java
    james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureStreamResponseImpl.java
    james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/StartTlsFutureResponse.java

Modified: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java?rev=1204691&r1=1204690&r2=1204691&view=diff
==============================================================================
--- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java (original)
+++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureResponseImpl.java Mon Nov 21 20:41:19 2011
@@ -27,16 +27,12 @@ import java.util.List;
  * 
  *
  */
-public class FutureResponseImpl extends AbstractResponse implements FutureResponse{
+public class FutureResponseImpl implements FutureResponse{
 
-    private final AbstractResponse response;
+    protected Response response;
     private boolean ready = false;
     private List<ResponseListener> listeners;
     private int waiters;
-    
-    public FutureResponseImpl(AbstractResponse response) {
-        this.response = response;
-    }
 
     protected final synchronized void checkReady() {
         while (!ready) {
@@ -74,34 +70,12 @@ public class FutureResponseImpl extends 
         return ready;
     }
     
-    public synchronized void markReady() {
-        if (!ready) {
-            ready = true;
-            
-            if (waiters > 0) {
-                notifyAll();
-            }
-            
-            for (ResponseListener listener: listeners) {
-                listener.onResponse(this);
-            }
-            listeners = null;
-        }
-    }
-
     @Override
     public List<CharSequence> getLines() {
         checkReady();
         return response.getLines();
     }
 
-    @Override
-    public synchronized void appendLine(CharSequence line) {
-        if (ready) {
-            throw new IllegalStateException("FutureResponse MUST NOT get modified after its ready");
-        }
-        response.appendLine(line);
-    }
 
     @Override
     public String getRetCode() {
@@ -109,13 +83,6 @@ public class FutureResponseImpl extends 
         return response.getRetCode();
     }
 
-    @Override
-    public synchronized void setRetCode(String retCode) {
-        if (ready) {
-            throw new IllegalStateException("FutureResponse MUST NOT get modified after its ready");
-        }
-        response.setRetCode(retCode);
-    }
 
     @Override
     public boolean isEndSession() {
@@ -124,16 +91,24 @@ public class FutureResponseImpl extends 
     }
 
     @Override
-    public synchronized void setEndSession(boolean endSession) {
-        if (ready) {
-            throw new IllegalStateException("FutureResponse MUST NOT get modified after its ready");
-        }
-        response.setEndSession(endSession);
-    }
-
-    @Override
     public synchronized String toString() {
+        checkReady();
         return response.toString();
     }
+    
+    public synchronized void setResponse(Response response) {
+        if (!ready) {
+            ready = true;
+            
+            if (waiters > 0) {
+                notifyAll();
+            }
+            
+            for (ResponseListener listener: listeners) {
+                listener.onResponse(this);
+            }
+            listeners = null;
+        }
+    }
 
 }

Modified: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureStreamResponseImpl.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureStreamResponseImpl.java?rev=1204691&r1=1204690&r2=1204691&view=diff
==============================================================================
--- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureStreamResponseImpl.java (original)
+++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/FutureStreamResponseImpl.java Mon Nov 21 20:41:19 2011
@@ -19,40 +19,23 @@
 
 package org.apache.james.protocols.api;
 
-import java.io.IOException;
 import java.io.InputStream;
 
 public class FutureStreamResponseImpl extends FutureResponseImpl implements StreamResponse{
 
-    private static final EmptyInputStream EMPTY = new EmptyInputStream();
-    
-    private InputStream in = EMPTY;
-    
-    public FutureStreamResponseImpl(AbstractResponse response) {
-        super(response);
-        if ((response instanceof StreamResponse) == false) {
-            throw new IllegalArgumentException("Given Response must be a StreamResponse");
+    @Override
+    public synchronized void setResponse(Response response) {
+        if (response instanceof StreamResponse) {
+            super.setResponse(response);
+        } else {
+            throw new IllegalArgumentException();
         }
     }
 
-    public synchronized void setStream(InputStream in) {
-        if (isReady()) {
-            throw new IllegalStateException("FutureResponse MUST NOT get modified after its ready");
-        }
-        this.in = in;
-    }
     @Override
     public InputStream getStream() {
         checkReady();
-        return in;
+        return ((StreamResponse) response).getStream();
         
     }
-
-    private final static class EmptyInputStream extends InputStream {
-    	
-        @Override
-        public int read() throws IOException {
-            return -1;
-        }
-    }
 }

Modified: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/StartTlsFutureResponse.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/StartTlsFutureResponse.java?rev=1204691&r1=1204690&r2=1204691&view=diff
==============================================================================
--- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/StartTlsFutureResponse.java (original)
+++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/StartTlsFutureResponse.java Mon Nov 21 20:41:19 2011
@@ -21,8 +21,14 @@ package org.apache.james.protocols.api;
 
 public class StartTlsFutureResponse extends FutureResponseImpl implements StartTlsResponse{
 
-    public StartTlsFutureResponse(AbstractResponse response) {
-        super(response);
+
+    @Override
+    public synchronized void setResponse(Response response) {
+        if (response instanceof StartTlsResponse) {
+            super.setResponse(response);
+        } else {
+            throw new IllegalArgumentException();
+        }
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org