This is an automated email from the ASF dual-hosted git repository.

tv pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/turbine-core.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 44f0dfb4 Add some convenience methods to PipelineData
44f0dfb4 is described below

commit 44f0dfb492c486841fc47dbe700535f09a38d9d8
Author: Thomas Vandahl <[email protected]>
AuthorDate: Tue Jan 6 16:01:27 2026 +0100

    Add some convenience methods to PipelineData
---
 src/java/org/apache/turbine/modules/Screen.java    |  6 ++--
 .../turbine/modules/actions/AccessController.java  |  2 +-
 .../sessionvalidator/DefaultSessionValidator.java  |  4 +--
 .../TemplateSecureSessionValidator.java            |  2 +-
 .../sessionvalidator/TemplateSessionValidator.java |  4 +--
 .../turbine/pipeline/DefaultPipelineData.java      | 19 -----------
 .../org/apache/turbine/pipeline/PipelineData.java  | 38 ++++++++++++++++++++--
 .../services/rundata/DefaultTurbineRunData.java    | 12 +++----
 .../services/rundata/TurbineRunDataService.java    | 14 ++++----
 src/java/org/apache/turbine/util/RunData.java      |  4 +--
 10 files changed, 58 insertions(+), 47 deletions(-)

diff --git a/src/java/org/apache/turbine/modules/Screen.java 
b/src/java/org/apache/turbine/modules/Screen.java
index 1c0beaa9..56028eee 100644
--- a/src/java/org/apache/turbine/modules/Screen.java
+++ b/src/java/org/apache/turbine/modules/Screen.java
@@ -88,8 +88,7 @@ public interface Screen extends Assembler
      */
     default String getLayout(PipelineData pipelineData)
     {
-        RunData data = pipelineData.getRunData();
-        return data.getLayout();
+        return pipelineData.getRunData().getLayout();
     }
 
     /**
@@ -100,7 +99,6 @@ public interface Screen extends Assembler
      */
     default void setLayout(PipelineData pipelineData, String layout)
     {
-        RunData data = pipelineData.getRunData();
-        data.setLayout(layout);
+        pipelineData.getRunData().setLayout(layout);
     }
 }
diff --git a/src/java/org/apache/turbine/modules/actions/AccessController.java 
b/src/java/org/apache/turbine/modules/actions/AccessController.java
index ee0bca16..7d853cde 100644
--- a/src/java/org/apache/turbine/modules/actions/AccessController.java
+++ b/src/java/org/apache/turbine/modules/actions/AccessController.java
@@ -114,6 +114,6 @@ public class AccessController implements Action
         }
 
         // Comply with Turbine 4.0 standards
-        pipelineData.get(Turbine.class).put(TurbineAccessControlList.class, 
data.getACL());
+        pipelineData.put(Turbine.class, TurbineAccessControlList.class, 
data.getACL());
     }
 }
diff --git 
a/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java
 
b/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java
index e74db2c2..6ba5d4e8 100644
--- 
a/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java
+++ 
b/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java
@@ -20,8 +20,8 @@ package org.apache.turbine.modules.actions.sessionvalidator;
  */
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.turbine.Turbine;
 import org.apache.turbine.TurbineConstants;
 import org.apache.turbine.annotation.TurbineConfiguration;
@@ -124,6 +124,6 @@ public class DefaultSessionValidator
         handleFormCounterToken(data,true);
 
         // Comply with Turbine 4.0 standards
-        pipelineData.get(Turbine.class).put(User.class, data.getUser());
+        pipelineData.put(Turbine.class, User.class, data.getUser());
     }
 }
diff --git 
a/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java
 
b/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java
index f5ced84a..85e80bf3 100644
--- 
a/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java
+++ 
b/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java
@@ -144,6 +144,6 @@ public class TemplateSecureSessionValidator
         }
 
         // Comply with Turbine 4.0 standards
-        pipelineData.get(Turbine.class).put(User.class, data.getUser());
+        pipelineData.put(Turbine.class, User.class, data.getUser());
     }
 }
diff --git 
a/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java
 
b/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java
index c0f109f6..fc2d0513 100644
--- 
a/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java
+++ 
b/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java
@@ -20,8 +20,8 @@ package org.apache.turbine.modules.actions.sessionvalidator;
  */
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.turbine.Turbine;
 import org.apache.turbine.om.security.User;
 import org.apache.turbine.pipeline.PipelineData;
@@ -96,6 +96,6 @@ public class TemplateSessionValidator
         }
 
         // Comply with Turbine 4.0 standards
-        pipelineData.get(Turbine.class).put(User.class, data.getUser());
+        pipelineData.put(Turbine.class, User.class, data.getUser());
     }
 }
diff --git a/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java 
b/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java
index 7695acc3..26b81ee9 100644
--- a/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java
+++ b/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java
@@ -79,25 +79,6 @@ public class DefaultPipelineData implements PipelineData
         return map.get(key);
     }
 
-    /**
-     * Get a value from the configured map of objects for the given keys
-     *
-     * @param key the key class
-     * @param innerKey the key into the value map
-     * @return the inner value or null if no such keys exist
-     */
-    @Override
-    @SuppressWarnings("unchecked")
-    public <T> T get(Class<?> key, Class<T> innerKey)
-    {
-        Map<Class<?>, ? super Object> innerMap = get(key);
-        if (innerMap == null)
-        {
-            return null;
-        }
-        return (T) innerMap.get(innerKey);
-    }
-
     /**
      * Put object back into RunDataService for recycling
      */
diff --git a/src/java/org/apache/turbine/pipeline/PipelineData.java 
b/src/java/org/apache/turbine/pipeline/PipelineData.java
index 37e29b90..ab47d358 100644
--- a/src/java/org/apache/turbine/pipeline/PipelineData.java
+++ b/src/java/org/apache/turbine/pipeline/PipelineData.java
@@ -50,6 +50,24 @@ public interface PipelineData extends AutoCloseable
      */
     void put(Class<?> name, Map<Class<?>, ? super Object> value);
 
+    /**
+     * Convenience method:
+     * Put a value into the pipeline data object
+     *
+     * @param name the key class
+     * @param innerKey the key into the value map
+     * @param value the value
+     */
+    default <T> void put(Class<?> name, Class<T> innerKey, T value)
+    {
+        Map<Class<?>, ? super Object> innerMap = get(name);
+        if (innerMap == null)
+        {
+            throw new TurbineRuntimeException("Inner map does not exist: " + 
name);
+        }
+        innerMap.put(innerKey, value);
+    }
+
     /**
      * Get the configured map of objects for the given key
      *
@@ -59,6 +77,7 @@ public interface PipelineData extends AutoCloseable
     Map<Class<?>, ? super Object> get(Class<?> name);
 
     /**
+     * Convenience method:
      * Get a value from the configured map of objects for the given keys
      *
      * @param key the key class
@@ -68,14 +87,26 @@ public interface PipelineData extends AutoCloseable
      *
      * @return the inner value or null if no such keys exist
      */
-    <T> T get(Class<?> key, Class<T> innerKey);
+    @SuppressWarnings("unchecked")
+    default <T> T get(Class<?> key, Class<T> innerKey)
+    {
+        Map<Class<?>, ? super Object> innerMap = get(key);
+        if (innerMap == null)
+        {
+            return null;
+        }
+        return (T) innerMap.get(innerKey);
+    }
 
     /**
-     * Get a value from the configured map of objects for the given keys
+     * Convenience method:
+     * Get a value from the configured map of objects for the given keys,
+     * compute it if it does not exist
      *
      * @param key the key class
      * @param innerKey the key into the value map
-     * @return the inner value or null if no such keys exist
+     * @param mappingFunction the mapping function to calculate the absent 
value
+     * @return the inner value or null if no inner map exists
      */
     @SuppressWarnings("unchecked")
     default <T> T computeIfAbsent(Class<?> key, Class<T> innerKey, Function<? 
super Class<?>, T> mappingFunction)
@@ -89,6 +120,7 @@ public interface PipelineData extends AutoCloseable
     }
 
     /**
+     * Convenience method:
      * Get RunData from PipelineData
      *
      * @return RunData extracted from PipelineData
diff --git 
a/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java 
b/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java
index c7b58828..661b2459 100644
--- a/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java
+++ b/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java
@@ -454,7 +454,7 @@ public class DefaultTurbineRunData
     @Override
     public void setMessage(String msg)
     {
-        get(Turbine.class).put(StringBuilder.class, new StringBuilder(msg));
+        put(Turbine.class, StringBuilder.class, new StringBuilder(msg));
     }
 
     /**
@@ -532,7 +532,7 @@ public class DefaultTurbineRunData
         User user = getUserFromSession();
 
         // TODO: Check if this side effect is reasonable
-        get(Turbine.class).put(User.class, user);
+        put(Turbine.class, User.class, user);
 
         return (user != null);
     }
@@ -546,7 +546,7 @@ public class DefaultTurbineRunData
     public void setUser(User user)
     {
         log.debug("user set: {}", user::getName);
-        get(Turbine.class).put(User.class, user);
+        put(Turbine.class, User.class, user);
     }
 
     /**
@@ -640,7 +640,7 @@ public class DefaultTurbineRunData
     @Override
     public void setLocale(Locale locale)
     {
-        get(Turbine.class).put(Locale.class, locale);
+        put(Turbine.class, Locale.class, locale);
 
         // propagate the locale to the parsers
         ParameterParser parameters = getParameterParser();
@@ -681,7 +681,7 @@ public class DefaultTurbineRunData
     public void setCharset(Charset charSet)
     {
         log.debug("setCharset({})", charSet);
-        get(Turbine.class).put(Charset.class, charSet);
+        put(Turbine.class, Charset.class, charSet);
     }
 
     /**
@@ -825,7 +825,7 @@ public class DefaultTurbineRunData
     public void populate()
     {
         User user = getUserFromSession();
-        get(Turbine.class).put(User.class, user);
+        put(Turbine.class, User.class, user);
 
         if (user != null)
         {
diff --git 
a/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java 
b/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java
index 1aadb487..b4152bcc 100644
--- a/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java
+++ b/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java
@@ -244,11 +244,11 @@ public class TurbineRunDataService
             data = (TurbineRunData) pool.getInstance(runDataClazz);
             @SuppressWarnings("unchecked") // ok
             ParameterParser pp = 
parserService.getParser((Class<ParameterParser>)parameterParserClazz);
-            data.get(Turbine.class).put(ParameterParser.class, pp);
+            data.put(Turbine.class, ParameterParser.class, pp);
 
             @SuppressWarnings("unchecked") // ok
             CookieParser cp = 
parserService.getParser((Class<CookieParser>)cookieParserClazz);
-            data.get(Turbine.class).put(CookieParser.class, cp);
+            data.put(Turbine.class, CookieParser.class, cp);
 
             Locale locale = req.getLocale();
 
@@ -271,15 +271,15 @@ public class TurbineRunDataService
         }
 
         // Set the request and response.
-        data.get(Turbine.class).put(HttpServletRequest.class, req);
-        data.get(Turbine.class).put(HttpServletResponse.class, res);
+        data.put(Turbine.class, HttpServletRequest.class, req);
+        data.put(Turbine.class, HttpServletResponse.class, res);
 
         // Set the servlet configuration.
-        data.get(Turbine.class).put(ServletConfig.class, config);
-        data.get(Turbine.class).put(ServletContext.class, 
config.getServletContext());
+        data.put(Turbine.class, ServletConfig.class, config);
+        data.put(Turbine.class, ServletContext.class, 
config.getServletContext());
 
         // Set the ServerData.
-        data.get(Turbine.class).put(ServerData.class, new ServerData(req));
+        data.put(Turbine.class, ServerData.class, new ServerData(req));
 
         return data;
     }
diff --git a/src/java/org/apache/turbine/util/RunData.java 
b/src/java/org/apache/turbine/util/RunData.java
index 750d7bae..dde4d5f1 100644
--- a/src/java/org/apache/turbine/util/RunData.java
+++ b/src/java/org/apache/turbine/util/RunData.java
@@ -362,7 +362,7 @@ public interface RunData extends PipelineData
      */
     default void setMessages(FormMessages msgs)
     {
-        get(Turbine.class).put(FormMessages.class, msgs);
+        put(Turbine.class, FormMessages.class, msgs);
     }
 
     /**
@@ -408,7 +408,7 @@ public interface RunData extends PipelineData
      */
     default <T extends User> void setUser(T user)
     {
-        get(Turbine.class).put(User.class, user);
+        put(Turbine.class, User.class, user);
     }
 
     /**

Reply via email to