You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by tv...@apache.org on 2011/11/10 20:23:45 UTC

svn commit: r1200486 - /turbine/core/trunk/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java

Author: tv
Date: Thu Nov 10 19:23:45 2011
New Revision: 1200486

URL: http://svn.apache.org/viewvc?rev=1200486&view=rev
Log:
Remove duplicate data storage in DefaultTurbineRunData and DefaultPipelineData

Modified:
    turbine/core/trunk/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java?rev=1200486&r1=1200485&r2=1200486&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java Thu Nov 10 19:23:45 2011
@@ -95,30 +95,6 @@ public class DefaultTurbineRunData
     /** The default charset. */
     private static String defaultCharSet = null;
 
-    /** A reference to the GET/POST data parser. */
-    private ParameterParser parameters;
-
-    /** A reference to a cookie parser. */
-    public CookieParser cookies;
-
-    /** The servlet request interface. */
-    private HttpServletRequest req;
-
-    /** The servlet response interface. */
-    private HttpServletResponse res;
-
-    /** The servlet configuration. */
-    private ServletConfig config;
-
-    /**
-     * The servlet context information.
-     * Note that this is from the "Turbine" Servlet context.
-     */
-    private ServletContext servletContext;
-
-    /** The access control list. */
-    private AccessControlList acl;
-
     /** Determines if there is information in the document or not. */
     private boolean pageSet;
 
@@ -137,21 +113,6 @@ public class DefaultTurbineRunData
     /** The character encoding of template files. */
     private String templateEncoding;
 
-    /** Information used by a Template system (such as Velocity/JSP). */
-    private TemplateInfo templateInfo;
-
-    /** This is where output messages from actions should go. */
-    private StringElement message;
-
-    /**
-     * This is a dedicated message class where output messages from
-     * actions should go.
-     */
-    private FormMessages messages;
-
-    /** The user object. */
-    private User user;
-
     /** This is what will build the <title></title> of the document. */
     private String title;
 
@@ -164,9 +125,6 @@ public class DefaultTurbineRunData
      */
     private PrintWriter out;
 
-    /** The locale. */
-    private Locale locale;
-
     /** The HTTP charset. */
     private String charSet;
 
@@ -180,14 +138,11 @@ public class DefaultTurbineRunData
     private int statusCode = HttpServletResponse.SC_OK;
 
     /** This is a List to hold critical system errors. */
-    private List<SystemError> errors = new ArrayList<SystemError>();
+    private final List<SystemError> errors = new ArrayList<SystemError>();
 
     /** JNDI Contexts. */
     private Map<String, Context> jndiContexts;
 
-    /** Holds ServerData (basic properties) about this RunData object. */
-    private ServerData serverData;
-
     /** @see #getRemoteAddr() */
     private String remoteAddr;
 
@@ -208,7 +163,7 @@ public class DefaultTurbineRunData
      * screen.  This is great for debugging variable values when an
      * exception is thrown.
      */
-    private Map<String, Object> debugVariables = new HashMap<String, Object>();
+    private final Map<String, Object> debugVariables = new HashMap<String, Object>();
 
     /** Logging */
     private static Log log = LogFactory.getLog(DefaultTurbineRunData.class);
@@ -306,7 +261,7 @@ public class DefaultTurbineRunData
         {
             log.debug("charset is empty!");
             /* Default charset isn't specified, get the locale specific one. */
-            Locale locale = this.locale;
+            Locale locale = getLocale();
             if (locale == null)
             {
                 locale = getDefaultLocale();
@@ -342,6 +297,9 @@ public class DefaultTurbineRunData
     public DefaultTurbineRunData()
     {
         super();
+
+        // a map to hold information to be added to pipelineData
+        put(Turbine.class, new HashMap<Class<?>, Object>());
         recycle();
     }
 
@@ -358,34 +316,24 @@ public class DefaultTurbineRunData
      */
     public void dispose()
     {
-        parameters = null;
-        cookies = null;
-        req = null;
-        res = null;
-        config = null;
-        servletContext = null;
-        acl = null;
+        // empty pipelinedata map
+        get(Turbine.class).clear();
+
         pageSet = false;
         page = null;
         action = null;
         layout = null;
         screen = null;
         templateEncoding = null;
-        templateInfo = null;
-        message = null;
-        messages = null;
-        user = null;
         title = null;
         outSet = false;
         out = null;
-        locale = null;
         charSet = null;
         contentType = "text/html";
         redirectURI = null;
         statusCode = HttpServletResponse.SC_OK;
         errors.clear();
         jndiContexts = null;
-        serverData = null;
         remoteAddr = null;
         remoteHost = null;
         userAgent = null;
@@ -406,12 +354,16 @@ public class DefaultTurbineRunData
     public ParameterParser getParameters()
     {
         // Parse the parameters first, if not yet done.
-        if ((this.parameters != null) &&
-                (this.parameters.getRequest() != this.req))
+        ParameterParser parameters = get(Turbine.class, ParameterParser.class);
+        HttpServletRequest request = get(Turbine.class, HttpServletRequest.class);
+
+        if ((parameters != null) &&
+                (parameters.getRequest() != request))
         {
-            this.parameters.setRequest(this.req);
+            parameters.setRequest(request);
         }
-        return this.parameters;
+
+        return parameters;
     }
 
     /**
@@ -422,12 +374,16 @@ public class DefaultTurbineRunData
     public CookieParser getCookies()
     {
         // Parse the cookies first, if not yet done.
-        if ((this.cookies != null) &&
-                (this.cookies.getRequest() != getRequest()))
+        CookieParser cookies = get(Turbine.class, CookieParser.class);
+        HttpServletRequest request = get(Turbine.class, HttpServletRequest.class);
+
+        if ((cookies != null) &&
+                (cookies.getRequest() != request))
         {
-            this.cookies.setData(getRequest(), getResponse());
+            cookies.setData(request, getResponse());
         }
-        return this.cookies;
+
+        return cookies;
     }
 
     /**
@@ -437,7 +393,7 @@ public class DefaultTurbineRunData
      */
     public HttpServletRequest getRequest()
     {
-        return this.req;
+        return get(Turbine.class, HttpServletRequest.class);
     }
 
     /**
@@ -447,7 +403,7 @@ public class DefaultTurbineRunData
      */
     public HttpServletResponse getResponse()
     {
-        return this.res;
+        return get(Turbine.class, HttpServletResponse.class);
     }
 
     /**
@@ -467,7 +423,7 @@ public class DefaultTurbineRunData
      */
     public ServletConfig getServletConfig()
     {
-        return this.config;
+        return get(Turbine.class, ServletConfig.class);
     }
 
     /**
@@ -477,7 +433,7 @@ public class DefaultTurbineRunData
      */
     public ServletContext getServletContext()
     {
-        return this.servletContext;
+        return get(Turbine.class, ServletContext.class);
     }
 
     /**
@@ -487,7 +443,7 @@ public class DefaultTurbineRunData
      */
     public AccessControlList getACL()
     {
-        return acl;
+        return get(Turbine.class, AccessControlList.class);
     }
 
     /**
@@ -497,7 +453,7 @@ public class DefaultTurbineRunData
      */
     public void setACL(AccessControlList acl)
     {
-        this.acl = acl;
+        get(Turbine.class).put(AccessControlList.class, acl);
     }
 
     /**
@@ -569,7 +525,7 @@ public class DefaultTurbineRunData
      * the Layout to execute.  You can also define that logic here as
      * well if you want it to apply on a global scale.  For example,
      * if you wanted to allow someone to define layout "preferences"
-     * where they could dynamicially change the layout for the entire
+     * where they could dynamically change the layout for the entire
      * site.
      *
      * @return a string.
@@ -711,10 +667,14 @@ public class DefaultTurbineRunData
      */
     public TemplateInfo getTemplateInfo()
     {
+        TemplateInfo templateInfo = get(Turbine.class, TemplateInfo.class);
+
         if (templateInfo == null)
         {
             templateInfo = new TemplateInfo(this);
+            get(Turbine.class).put(TemplateInfo.class, templateInfo);
         }
+
         return templateInfo;
     }
 
@@ -725,8 +685,9 @@ public class DefaultTurbineRunData
      */
     public boolean hasMessage()
     {
-        return (this.message != null)
-            && StringUtils.isNotEmpty(this.message.toString());
+        StringElement message = get(Turbine.class, StringElement.class);
+        return (message != null)
+            && StringUtils.isNotEmpty(message.toString());
     }
 
     /**
@@ -737,7 +698,8 @@ public class DefaultTurbineRunData
      */
     public String getMessage()
     {
-        return (this.message == null ? null : this.message.toString());
+        StringElement message = get(Turbine.class, StringElement.class);
+        return (message == null ? null : message.toString());
     }
 
     /**
@@ -747,7 +709,7 @@ public class DefaultTurbineRunData
      */
     public void setMessage(String msg)
     {
-        this.message = new StringElement(msg);
+        get(Turbine.class).put(StringElement.class, new StringElement(msg));
     }
 
     /**
@@ -769,7 +731,7 @@ public class DefaultTurbineRunData
      */
     public StringElement getMessageAsHTML()
     {
-        return this.message;
+        return get(Turbine.class, StringElement.class);
     }
 
     /**
@@ -779,7 +741,7 @@ public class DefaultTurbineRunData
      */
     public void setMessage(Element msg)
     {
-        this.message = new StringElement(msg);
+        get(Turbine.class).put(StringElement.class, new StringElement(msg));
     }
 
     /**
@@ -792,13 +754,15 @@ public class DefaultTurbineRunData
     {
         if (msg != null)
         {
+            StringElement message = get(Turbine.class, StringElement.class);
+
             if (message != null)
             {
                 message.addElement(msg);
             }
             else
             {
-                message = new StringElement(msg);
+                setMessage(msg);
             }
         }
     }
@@ -808,7 +772,7 @@ public class DefaultTurbineRunData
      */
     public void unsetMessage()
     {
-        this.message = null;
+        get(Turbine.class).remove(StringElement.class);
     }
 
     /**
@@ -819,11 +783,14 @@ public class DefaultTurbineRunData
      */
     public FormMessages getMessages()
     {
-        if (this.messages == null)
+        FormMessages messages = get(Turbine.class, FormMessages.class);
+        if (messages == null)
         {
-            this.messages = new FormMessages();
+            messages = new FormMessages();
+            setMessages(messages);
         }
-        return this.messages;
+
+        return messages;
     }
 
     /**
@@ -833,7 +800,7 @@ public class DefaultTurbineRunData
      */
     public void setMessages(FormMessages msgs)
     {
-        this.messages = msgs;
+        get(Turbine.class).put(FormMessages.class, msgs);
     }
 
     /**
@@ -863,7 +830,11 @@ public class DefaultTurbineRunData
      */
     public boolean userExists()
     {
-        user = getUserFromSession();
+        User user = getUserFromSession();
+
+        // TODO: Check if this side effect is reasonable
+        get(Turbine.class).put(User.class, user);
+
         return (user != null);
     }
 
@@ -874,7 +845,7 @@ public class DefaultTurbineRunData
      */
     public User getUser()
     {
-        return this.user;
+        return get(Turbine.class, User.class);
     }
 
     /**
@@ -885,7 +856,7 @@ public class DefaultTurbineRunData
     public void setUser(User user)
     {
         log.debug("user set: " + user.getName());
-        this.user = user;
+        get(Turbine.class).put(User.class, user);
     }
 
     /**
@@ -936,7 +907,7 @@ public class DefaultTurbineRunData
         // Check to see if null first.
         if (this.out == null)
         {
-            setOut(res.getWriter());
+            setOut(getResponse().getWriter());
         }
         pageSet = false;
         outSet = true;
@@ -966,7 +937,7 @@ public class DefaultTurbineRunData
      */
     public Locale getLocale()
     {
-        Locale locale = this.locale;
+        Locale locale = get(Turbine.class, Locale.class);
         if (locale == null)
         {
             locale = getDefaultLocale();
@@ -981,15 +952,18 @@ public class DefaultTurbineRunData
      */
     public void setLocale(Locale locale)
     {
-        this.locale = locale;
-        
+        get(Turbine.class).put(Locale.class, locale);
+
         // propagate the locale to the parsers
-        if (this.parameters != null)
+        ParameterParser parameters = get(Turbine.class, ParameterParser.class);
+        CookieParser cookies = get(Turbine.class, CookieParser.class);
+
+        if (parameters != null)
         {
             parameters.setLocale(locale);
         }
 
-        if (this.cookies != null)
+        if (cookies != null)
         {
             cookies.setLocale(locale);
         }
@@ -1051,7 +1025,7 @@ public class DefaultTurbineRunData
                 {
                     return contentType + "; charset=" + getDefaultCharSet();
                 }
-                
+
                 return contentType;
             }
             else
@@ -1216,7 +1190,7 @@ public class DefaultTurbineRunData
      */
     public ServerData getServerData()
     {
-        return this.serverData;
+        return get(Turbine.class, ServerData.class);
     }
 
     /**
@@ -1272,7 +1246,8 @@ public class DefaultTurbineRunData
      */
     public void populate()
     {
-        user = getUserFromSession();
+        User user = getUserFromSession();
+        get(Turbine.class).put(User.class, user);
 
         if (user != null)
         {
@@ -1287,7 +1262,7 @@ public class DefaultTurbineRunData
      */
     public void save()
     {
-        getSession().setAttribute(User.SESSION_KEY, user);
+        getSession().setAttribute(User.SESSION_KEY, getUser());
     }
 
     /**
@@ -1373,7 +1348,7 @@ public class DefaultTurbineRunData
      */
     public ParameterParser getParameterParser()
     {
-        return parameters;
+        return get(Turbine.class, ParameterParser.class);
     }
 
     /**
@@ -1383,7 +1358,7 @@ public class DefaultTurbineRunData
      */
     public void setParameterParser(ParameterParser parser)
     {
-        parameters = parser;
+        get(Turbine.class).put(ParameterParser.class, parser);
     }
 
     /**
@@ -1393,7 +1368,7 @@ public class DefaultTurbineRunData
      */
     public CookieParser getCookieParser()
     {
-        return cookies;
+        return get(Turbine.class, CookieParser.class);
     }
 
     /**
@@ -1403,7 +1378,7 @@ public class DefaultTurbineRunData
      */
     public void setCookieParser(CookieParser parser)
     {
-        cookies = parser;
+        get(Turbine.class).put(ParameterParser.class, parser);
     }
 
     /**
@@ -1413,7 +1388,7 @@ public class DefaultTurbineRunData
      */
     public void setRequest(HttpServletRequest req)
     {
-        this.req = req;
+        get(Turbine.class).put(HttpServletRequest.class, req);
     }
 
     /**
@@ -1423,7 +1398,7 @@ public class DefaultTurbineRunData
      */
     public void setResponse(HttpServletResponse res)
     {
-        this.res = res;
+        get(Turbine.class).put(HttpServletResponse.class, res);
     }
 
     /**
@@ -1433,14 +1408,15 @@ public class DefaultTurbineRunData
      */
     public void setServletConfig(ServletConfig config)
     {
-        this.config = config;
+        get(Turbine.class).put(ServletConfig.class, config);
+
         if (config == null)
         {
-            this.servletContext = null;
+            get(Turbine.class).put(ServletContext.class, null);
         }
         else
         {
-            this.servletContext = config.getServletContext();
+            get(Turbine.class).put(ServletContext.class, config.getServletContext());
         }
     }
 
@@ -1451,7 +1427,7 @@ public class DefaultTurbineRunData
      */
     public void setServerData(ServerData serverData)
     {
-        this.serverData = serverData;
+        get(Turbine.class).put(ServerData.class, serverData);
     }
 
     // ********************