Author: trustin
Date: Tue Nov 13 21:27:14 2007
New Revision: 594773

URL: http://svn.apache.org/viewvc?rev=594773&view=rev
Log:
* Added WriteRequest.getOriginalRequest
* Renamed WriteRequestWrapper.getWriteRequest() to getParentRequest()
* Simplified WriteException


Modified:
    
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java
    mina/trunk/core/src/main/java/org/apache/mina/common/WriteException.java
    mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequest.java
    
mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequestWrapper.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/util/WriteRequestFilter.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java 
(original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java 
Tue Nov 13 21:27:14 2007
@@ -96,9 +96,7 @@
     };
 
     private final Object message;
-
     private final WriteFuture future;
-
     private final SocketAddress destination;
 
     /**
@@ -140,25 +138,18 @@
         this.destination = destination;
     }
 
-    /**
-     * Returns [EMAIL PROTECTED] WriteFuture} that is associated with this 
write request.
-     */
     public WriteFuture getFuture() {
         return future;
     }
 
-    /**
-     * Returns a message object to be written.
-     */
     public Object getMessage() {
         return message;
     }
 
-    /**
-     * Returne the destination of this write request.
-     *
-     * @return <tt>null</tt> for the default destination
-     */
+    public WriteRequest getOriginalRequest() {
+        return this;
+    }
+
     public SocketAddress getDestination() {
         return destination;
     }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/WriteException.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/WriteException.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/WriteException.java 
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/WriteException.java 
Tue Nov 13 21:27:14 2007
@@ -23,7 +23,11 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Set;
+
+import org.apache.mina.util.MapBackedSet;
 
 /**
  * An exception which is thrown when one or more write operations were failed.
@@ -125,11 +129,13 @@
             throw new IllegalArgumentException("requests is empty.");
         }
 
-        List<WriteRequest> newRequests = new 
ArrayList<WriteRequest>(requests.size());
+        // Create a list of requests removing duplicates.
+        Set<WriteRequest> newRequests = new MapBackedSet<WriteRequest>(new 
LinkedHashMap<WriteRequest, Boolean>());
         for (WriteRequest r: requests) {
-            newRequests.add(unwrapRequest(r));
+            newRequests.add(r.getOriginalRequest());
         }
-        return Collections.unmodifiableList(newRequests);
+        
+        return Collections.unmodifiableList(new 
ArrayList<WriteRequest>(newRequests));
     }
 
     private static List<WriteRequest> asRequestList(WriteRequest request) {
@@ -138,14 +144,7 @@
         }
         
         List<WriteRequest> requests = new ArrayList<WriteRequest>(1);
-        requests.add(unwrapRequest(request));
+        requests.add(request.getOriginalRequest());
         return Collections.unmodifiableList(requests);
-    }
-
-    private static WriteRequest unwrapRequest(WriteRequest request) {
-        while (request instanceof WriteRequestWrapper) {
-            request = ((WriteRequestWrapper) request).getWriteRequest();
-        }
-        return request;
     }
 }

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequest.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequest.java 
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequest.java Tue 
Nov 13 21:27:14 2007
@@ -29,10 +29,16 @@
  */
 public interface WriteRequest {
     /**
+     * Returns the [EMAIL PROTECTED] WriteRequest} which was requested 
originally,
+     * which is not transformed by any [EMAIL PROTECTED] IoFilter}.
+     */
+    WriteRequest getOriginalRequest();
+
+    /**
      * Returns [EMAIL PROTECTED] WriteFuture} that is associated with this 
write request.
      */
     WriteFuture getFuture();
-
+    
     /**
      * Returns a message object to be written.
      */

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequestWrapper.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequestWrapper.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequestWrapper.java 
(original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequestWrapper.java 
Tue Nov 13 21:27:14 2007
@@ -29,35 +29,39 @@
  */
 public class WriteRequestWrapper implements WriteRequest {
 
-    private final WriteRequest writeRequest;
+    private final WriteRequest parentRequest;
 
     /**
      * Creates a new instance that wraps the specified request.
      */
-    public WriteRequestWrapper(WriteRequest writeRequest) {
-        if (writeRequest == null) {
-            throw new NullPointerException("writeRequest");
+    public WriteRequestWrapper(WriteRequest parentRequest) {
+        if (parentRequest == null) {
+            throw new NullPointerException("parentRequest");
         }
-        this.writeRequest = writeRequest;
+        this.parentRequest = parentRequest;
     }
 
     public SocketAddress getDestination() {
-        return writeRequest.getDestination();
+        return parentRequest.getDestination();
     }
 
     public WriteFuture getFuture() {
-        return writeRequest.getFuture();
+        return parentRequest.getFuture();
     }
 
     public Object getMessage() {
-        return writeRequest.getMessage();
+        return parentRequest.getMessage();
+    }
+
+    public WriteRequest getOriginalRequest() {
+        return parentRequest.getOriginalRequest();
     }
 
     /**
      * Returns the wrapped request object.
      */
-    public WriteRequest getWriteRequest() {
-        return writeRequest;
+    public WriteRequest getParentRequest() {
+        return parentRequest;
     }
 
     @Override

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
 Tue Nov 13 21:27:14 2007
@@ -206,7 +206,7 @@
         }
 
         MessageWriteRequest wrappedRequest = (MessageWriteRequest) 
writeRequest;
-        nextFilter.messageSent(session, wrappedRequest.getWriteRequest());
+        nextFilter.messageSent(session, wrappedRequest.getParentRequest());
     }
 
     @Override

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java 
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java Tue 
Nov 13 21:27:14 2007
@@ -444,7 +444,7 @@
             WriteRequest writeRequest) {
         if (writeRequest instanceof EncryptedWriteRequest) {
             EncryptedWriteRequest wrappedRequest = (EncryptedWriteRequest) 
writeRequest;
-            nextFilter.messageSent(session, wrappedRequest.getWriteRequest());
+            nextFilter.messageSent(session, wrappedRequest.getParentRequest());
         } else {
             // ignore extra buffers used for handshaking
         }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/util/WriteRequestFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/util/WriteRequestFilter.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/util/WriteRequestFilter.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/util/WriteRequestFilter.java
 Tue Nov 13 21:27:14 2007
@@ -61,7 +61,7 @@
         if (writeRequest instanceof FilteredWriteRequest) {
             FilteredWriteRequest req = (FilteredWriteRequest) writeRequest;
             if (req.getParent() == this) {
-                nextFilter.messageSent(session, req.getWriteRequest());
+                nextFilter.messageSent(session, req.getParentRequest());
                 return;
             }
         }


Reply via email to