Author: markt
Date: Wed Jul  3 13:37:05 2013
New Revision: 1499396

URL: http://svn.apache.org/r1499396
Log:
EL 3.0
Implement new methods

Modified:
    tomcat/trunk/java/javax/el/ELContext.java

Modified: tomcat/trunk/java/javax/el/ELContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ELContext.java?rev=1499396&r1=1499395&r2=1499396&view=diff
==============================================================================
--- tomcat/trunk/java/javax/el/ELContext.java (original)
+++ tomcat/trunk/java/javax/el/ELContext.java Wed Jul  3 13:37:05 2013
@@ -17,7 +17,9 @@
 package javax.el;
 
 import java.util.ArrayList;
+import java.util.Deque;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -34,6 +36,8 @@ public abstract class ELContext {
 
     private List<EvaluationListener> listeners = new ArrayList<>();
 
+    private Deque<Map<String,Object>> lambdaArguments = new LinkedList<>();
+
     public ELContext() {
         this.resolved = false;
     }
@@ -159,6 +163,45 @@ public abstract class ELContext {
     /**
      * @since EL 3.0
      */
+    public boolean isLambdaArgument(String name) {
+        for (Map<String,Object> arguments : lambdaArguments) {
+            if (arguments.containsKey(name)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * @since EL 3.0
+     */
+    public Object getLambdaArgument(String name) {
+        for (Map<String,Object> arguments : lambdaArguments) {
+            Object result = arguments.get(name);
+            if (result != null) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * @since EL 3.0
+     */
+    public void enterLambdaScope(Map<String,Object> arguments) {
+        lambdaArguments.push(arguments);
+    }
+
+    /**
+     * @since EL 3.0
+     */
+    public void exitLambdaScope() {
+        lambdaArguments.pop();
+    }
+
+    /**
+     * @since EL 3.0
+     */
     public Object convertToType(Object obj, Class<?> type) {
 
         boolean originalResolved = isPropertyResolved();



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to