changing the type of responseHeaders from Map to the more natural Addable

git-svn-id: https://svn.apache.org/repos/asf/tiles/framework/trunk/tiles-request@1215009 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java b/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java
index 5a0a6db..a81a087 100644
--- a/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java
+++ b/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java
@@ -27,6 +27,8 @@
 import java.util.Locale;
 import java.util.Map;
 
+import org.apache.tiles.request.attribute.Addable;
+
 
 /**
  * Encapsulation of request information.
@@ -54,11 +56,11 @@
     Map<String, String[]> getHeaderValues();
 
     /**
-     * Return an unreadable Map that writes headers to the response.
+     * Return an Addable object that can be used to write headers to the response.
      *
-     * @return The header map.
+     * @return An Addable object.
      */
-    Map<String, String> getResponseHeaders();
+    Addable<String> getResponseHeaders();
 
     /**
      * Returns a context map, given the scope name.
diff --git a/tiles-request-api/src/main/java/org/apache/tiles/request/util/DefaultRequestWrapper.java b/tiles-request-api/src/main/java/org/apache/tiles/request/util/DefaultRequestWrapper.java
index c900898..f66755b 100644
--- a/tiles-request-api/src/main/java/org/apache/tiles/request/util/DefaultRequestWrapper.java
+++ b/tiles-request-api/src/main/java/org/apache/tiles/request/util/DefaultRequestWrapper.java
@@ -30,6 +30,7 @@
 
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
+import org.apache.tiles.request.attribute.Addable;
 import org.apache.tiles.request.scope.ContextResolver;
 
 /**
@@ -71,7 +72,7 @@
     }
 
     /** {@inheritDoc} */
-    public Map<String, String> getResponseHeaders() {
+    public Addable<String> getResponseHeaders() {
         return context.getResponseHeaders();
     }
 
diff --git a/tiles-request-api/src/main/java/org/apache/tiles/request/util/DispatchRequestWrapper.java b/tiles-request-api/src/main/java/org/apache/tiles/request/util/DispatchRequestWrapper.java
index dc9921a..a643b5e 100644
--- a/tiles-request-api/src/main/java/org/apache/tiles/request/util/DispatchRequestWrapper.java
+++ b/tiles-request-api/src/main/java/org/apache/tiles/request/util/DispatchRequestWrapper.java
@@ -30,6 +30,7 @@
 import org.apache.tiles.request.AbstractRequest;
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.DispatchRequest;
+import org.apache.tiles.request.attribute.Addable;
 import org.apache.tiles.request.scope.ContextResolver;
 
 /**
@@ -71,7 +72,7 @@
     }
 
     /** {@inheritDoc} */
-    public Map<String, String> getResponseHeaders() {
+    public Addable<String> getResponseHeaders() {
         return context.getResponseHeaders();
     }
 
diff --git a/tiles-request-api/src/test/java/org/apache/tiles/request/scope/ReflectionContextResolverTest.java b/tiles-request-api/src/test/java/org/apache/tiles/request/scope/ReflectionContextResolverTest.java
index 12c801b..e29f4e0 100644
--- a/tiles-request-api/src/test/java/org/apache/tiles/request/scope/ReflectionContextResolverTest.java
+++ b/tiles-request-api/src/test/java/org/apache/tiles/request/scope/ReflectionContextResolverTest.java
@@ -31,6 +31,7 @@
 
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
+import org.apache.tiles.request.attribute.Addable;
 import org.apache.tiles.request.util.DefaultRequestWrapper;
 import org.apache.tiles.request.util.RequestWrapper;
 import org.junit.Before;
@@ -260,7 +261,7 @@
         }
 
         @Override
-        public Map<String, String> getResponseHeaders() {
+        public Addable<String> getResponseHeaders() {
             return null;
         }
 
diff --git a/tiles-request-api/src/test/java/org/apache/tiles/request/util/DefaultRequestWrapperTest.java b/tiles-request-api/src/test/java/org/apache/tiles/request/util/DefaultRequestWrapperTest.java
index ac77b42..58e3766 100644
--- a/tiles-request-api/src/test/java/org/apache/tiles/request/util/DefaultRequestWrapperTest.java
+++ b/tiles-request-api/src/test/java/org/apache/tiles/request/util/DefaultRequestWrapperTest.java
@@ -38,6 +38,7 @@
 
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
+import org.apache.tiles.request.attribute.Addable;
 import org.apache.tiles.request.scope.ContextResolver;
 import org.junit.Test;
 
@@ -106,7 +107,7 @@
     @Test
     public void testGetResponseHeaders() {
         Request wrappedRequest = createMockRequest();
-        Map<String, String> header = createMock(Map.class);
+        Addable<String> header = createMock(Addable.class);
 
         expect(wrappedRequest.getResponseHeaders()).andReturn(header);
 
diff --git a/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java b/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
index 68a1305..2201574 100644
--- a/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
+++ b/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
@@ -35,7 +35,7 @@
 
 import org.apache.tiles.request.AbstractClientRequest;
 import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.collection.AddOnlyMap;
+import org.apache.tiles.request.attribute.Addable;
 import org.apache.tiles.request.collection.HeaderValuesMap;
 import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
 import org.apache.tiles.request.collection.ScopeMap;
@@ -68,7 +68,7 @@
      * <p>The lazily instantiated <code>Map</code> of header name-value
      * combinations (write-only).</p>
      */
-    private Map<String, String> responseHeaders = null;
+    private Addable<String> responseHeaders = null;
 
 
     /**
@@ -184,9 +184,9 @@
     }
 
     /** {@inheritDoc} */
-    public Map<String, String> getResponseHeaders() {
+    public Addable<String> getResponseHeaders() {
         if ((responseHeaders == null) && (request != null)) {
-            responseHeaders = new AddOnlyMap<String>(new HeaderExtractor(null, response));
+            responseHeaders = new HeaderExtractor(null, response);
         }
         return (responseHeaders);
     }
diff --git a/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java b/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
index 908e17a..37cbc29 100644
--- a/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
+++ b/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
@@ -36,12 +36,12 @@
 import javax.servlet.ServletOutputStream;
 
 import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.collection.AddOnlyMap;
 import org.apache.tiles.request.collection.HeaderValuesMap;
 import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
 import org.apache.tiles.request.collection.ScopeMap;
 import org.apache.tiles.request.portlet.delegate.RequestDelegate;
 import org.apache.tiles.request.portlet.delegate.ResponseDelegate;
+import org.apache.tiles.request.portlet.extractor.HeaderExtractor;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -244,7 +244,7 @@
      */
     @Test
     public void testGetResponseHeaders() {
-        assertTrue(req.getResponseHeaders() instanceof AddOnlyMap);
+        assertTrue(req.getResponseHeaders() instanceof HeaderExtractor);
     }
 
     /**
diff --git a/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java b/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java
index 3f6cd2f..83afdad 100644
--- a/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java
+++ b/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java
@@ -34,7 +34,7 @@
 
 import org.apache.tiles.request.AbstractClientRequest;
 import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.collection.AddOnlyMap;
+import org.apache.tiles.request.attribute.Addable;
 import org.apache.tiles.request.collection.HeaderValuesMap;
 import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
 import org.apache.tiles.request.collection.ScopeMap;
@@ -85,7 +85,7 @@
      * <p>The lazily instantiated <code>Map</code> of header name-value
      * combinations (write-only).</p>
      */
-    private Map<String, String> responseHeaders = null;
+    private Addable<String> responseHeaders = null;
 
 
     /**
@@ -142,10 +142,10 @@
     }
 
     /** {@inheritDoc} */
-    public Map<String, String> getResponseHeaders() {
+    public Addable<String> getResponseHeaders() {
 
         if ((responseHeaders == null) && (response != null)) {
-            responseHeaders = new AddOnlyMap<String>(new HeaderExtractor(null, response));
+            responseHeaders = new HeaderExtractor(null, response);
         }
         return (responseHeaders);
 
diff --git a/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletRequestTest.java b/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletRequestTest.java
index 93a3d6e..00b41c6 100644
--- a/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletRequestTest.java
+++ b/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletRequestTest.java
@@ -36,10 +36,10 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.collection.AddOnlyMap;
 import org.apache.tiles.request.collection.HeaderValuesMap;
 import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
 import org.apache.tiles.request.collection.ScopeMap;
+import org.apache.tiles.request.servlet.extractor.HeaderExtractor;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -223,7 +223,7 @@
      */
     @Test
     public void testGetResponseHeaders() {
-        assertTrue(req.getResponseHeaders() instanceof AddOnlyMap);
+        assertTrue(req.getResponseHeaders() instanceof HeaderExtractor);
     }
 
     /**