From 276cd9276df4ab233482b0c3f73ba1b9597ccc11 Mon Sep 17 00:00:00 2001 From: markt Date: Wed, 13 Jan 2010 19:20:42 +0000 Subject: [PATCH] Implement remainder of EL 2.2. API changes git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@898902 13f79535-47bb-0310-9956-ffa450edef68 --- java/javax/el/MethodExpression.java | 10 +++++++++ java/javax/el/ValueExpression.java | 9 ++++++++ java/javax/el/ValueReference.java | 44 +++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 java/javax/el/ValueReference.java diff --git a/java/javax/el/MethodExpression.java b/java/javax/el/MethodExpression.java index 0b566fcfa..34c7cc055 100644 --- a/java/javax/el/MethodExpression.java +++ b/java/javax/el/MethodExpression.java @@ -22,7 +22,17 @@ package javax.el; */ public abstract class MethodExpression extends Expression { + private static final long serialVersionUID = 8163925562047324656L; + public abstract MethodInfo getMethodInfo(ELContext context) throws NullPointerException, PropertyNotFoundException, MethodNotFoundException, ELException; public abstract Object invoke(ELContext context, Object[] params) throws NullPointerException, PropertyNotFoundException, MethodNotFoundException, ELException; + + /** + * @since EL 2.2 + */ + public boolean isParametersProvided() { + // Expected to be over-ridden by implementation + return false; + } } diff --git a/java/javax/el/ValueExpression.java b/java/javax/el/ValueExpression.java index e501a9ed3..ad785485f 100644 --- a/java/javax/el/ValueExpression.java +++ b/java/javax/el/ValueExpression.java @@ -22,6 +22,8 @@ package javax.el; */ public abstract class ValueExpression extends Expression { + private static final long serialVersionUID = 8577809572381654673L; + public abstract Class getExpectedType(); public abstract Class getType(ELContext context) throws NullPointerException, PropertyNotFoundException, ELException; @@ -32,4 +34,11 @@ public abstract class ValueExpression extends Expression { public abstract Object getValue(ELContext context) throws NullPointerException, PropertyNotFoundException, ELException; + /** + * @since EL 2.2 + */ + public ValueReference getValueReference(@SuppressWarnings("unused") ELContext context) { + // Expected to be over-ridden by implementation + return null; + } } diff --git a/java/javax/el/ValueReference.java b/java/javax/el/ValueReference.java new file mode 100644 index 000000000..d8f7f6d00 --- /dev/null +++ b/java/javax/el/ValueReference.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package javax.el; + +import java.io.Serializable; + +/** + * @since EL 2.2 + */ +public class ValueReference implements Serializable { + + private static final long serialVersionUID = 1L; + + private Object base; + private Object property; + + public ValueReference(Object base, Object property) { + this.base = base; + this.property = property; + } + + public Object getBase() { + return base; + } + + public Object getProperty() { + return property; + } +} -- 2.11.0