You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2009/02/03 07:59:49 UTC

svn commit: r740232 - /cocoon/cocoon3/trunk/cocoon-servlet/src/main/java/org/apache/cocoon/servlet/controller/ControllerContextHelper.java

Author: reinhard
Date: Tue Feb  3 06:59:49 2009
New Revision: 740232

URL: http://svn.apache.org/viewvc?rev=740232&view=rev
Log:
. Javadocs
. add a method to directly store controller context objects in the Request

Modified:
    cocoon/cocoon3/trunk/cocoon-servlet/src/main/java/org/apache/cocoon/servlet/controller/ControllerContextHelper.java

Modified: cocoon/cocoon3/trunk/cocoon-servlet/src/main/java/org/apache/cocoon/servlet/controller/ControllerContextHelper.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-servlet/src/main/java/org/apache/cocoon/servlet/controller/ControllerContextHelper.java?rev=740232&r1=740231&r2=740232&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-servlet/src/main/java/org/apache/cocoon/servlet/controller/ControllerContextHelper.java (original)
+++ cocoon/cocoon3/trunk/cocoon-servlet/src/main/java/org/apache/cocoon/servlet/controller/ControllerContextHelper.java Tue Feb  3 06:59:49 2009
@@ -25,12 +25,26 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+/**
+ * This class helps with storing and retrieving the controller context.
+ * Internally it uses the current servlet request. Thanks to the servlet-service
+ * framework, the current request becomes the parent of all sub-requests that
+ * use e.g. the 'servlet:' protocol. This means that it is enough to store
+ * objects that should be available in a sub-request into the current request.
+ */
 public class ControllerContextHelper {
 
     private static final Log LOG = LogFactory.getLog(ControllerContextHelper.class);
 
     private static final String CONTEXT_OBJECT = ControllerContextHelper.class.getName();
 
+    /**
+     * Retrieve the current controller context from the Cocoon parameters.
+     * 
+     * @param parameters The Cocoon parameters map.
+     * @return The controller context map as being available in the current
+     *         servlet request.
+     */
     @SuppressWarnings("unchecked")
     public static Map<String, Object> getContext(Map<String, ? extends Object> parameters) {
         HttpServletRequest request = HttpContextHelper.getRequest(parameters);
@@ -44,8 +58,28 @@
         return Collections.EMPTY_MAP;
     }
 
+    /**
+     * Store the controller context (a {@link Map}) in the Cocoon parameters.
+     * 
+     * @param controllerContext The objects that should be available in the
+     *            child request.
+     * @param parameters The Cocoon parameters map.
+     */
     public static void storeContext(Map<String, Object> controllerContext, Map<String, Object> parameters) {
         HttpServletRequest request = HttpContextHelper.getRequest(parameters);
+        storeContext(controllerContext, request);
+    }
+
+    /**
+     * Store the controller context (a {@link Map} directly into the
+     * {@link HttpServletRequest}.
+     * 
+     * @param controllerContext The objects that should be available in the
+     *            child request.
+     * @param request The current request that becomes the parent of the next
+     *            request.
+     */
+    public static void storeContext(Map<String, Object> controllerContext, HttpServletRequest request) {
         request.setAttribute(CONTEXT_OBJECT, controllerContext);
     }
 }