From 006af82a08bb82c88d71faf20752f039a6e7d5ff Mon Sep 17 00:00:00 2001 From: markt Date: Thu, 5 Nov 2009 01:13:12 +0000 Subject: [PATCH] Partial fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=48132 Patch provided by sebb with some additional issues reported by Eclispe git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@832950 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/el/ExpressionFactoryImpl.java | 4 +++ java/org/apache/el/MethodExpressionImpl.java | 6 ++++ java/org/apache/el/MethodExpressionLiteral.java | 6 ++++ java/org/apache/el/ValueExpressionImpl.java | 10 +++++++ java/org/apache/el/ValueExpressionLiteral.java | 9 ++++++ java/org/apache/el/lang/ELArithmetic.java | 32 ++++++++++++++++++++++ java/org/apache/el/lang/EvaluationContext.java | 9 ++++++ java/org/apache/el/lang/FunctionMapperFactory.java | 1 + java/org/apache/el/lang/FunctionMapperImpl.java | 3 ++ java/org/apache/el/lang/VariableMapperFactory.java | 2 ++ java/org/apache/el/lang/VariableMapperImpl.java | 2 ++ java/org/apache/el/parser/ArithmeticNode.java | 1 + java/org/apache/el/parser/AstAnd.java | 1 + java/org/apache/el/parser/AstBracketSuffix.java | 1 + java/org/apache/el/parser/AstChoice.java | 2 ++ .../apache/el/parser/AstCompositeExpression.java | 2 ++ .../apache/el/parser/AstDeferredExpression.java | 4 +++ java/org/apache/el/parser/AstDiv.java | 1 + java/org/apache/el/parser/AstDotSuffix.java | 1 + .../org/apache/el/parser/AstDynamicExpression.java | 4 +++ java/org/apache/el/parser/AstEmpty.java | 2 ++ java/org/apache/el/parser/AstEqual.java | 1 + java/org/apache/el/parser/AstFalse.java | 1 + java/org/apache/el/parser/AstFloatingPoint.java | 2 ++ java/org/apache/el/parser/AstFunction.java | 3 ++ java/org/apache/el/parser/AstGreaterThan.java | 1 + java/org/apache/el/parser/AstGreaterThanEqual.java | 1 + java/org/apache/el/parser/AstIdentifier.java | 6 ++++ java/org/apache/el/parser/AstInteger.java | 2 ++ java/org/apache/el/parser/AstLessThan.java | 1 + java/org/apache/el/parser/AstLessThanEqual.java | 1 + .../org/apache/el/parser/AstLiteralExpression.java | 3 ++ java/org/apache/el/parser/AstMinus.java | 1 + java/org/apache/el/parser/AstMod.java | 1 + java/org/apache/el/parser/AstMult.java | 1 + java/org/apache/el/parser/AstNegative.java | 2 ++ java/org/apache/el/parser/AstNot.java | 2 ++ java/org/apache/el/parser/AstNotEqual.java | 1 + java/org/apache/el/parser/AstNull.java | 2 ++ java/org/apache/el/parser/AstOr.java | 1 + java/org/apache/el/parser/AstPlus.java | 1 + java/org/apache/el/parser/AstString.java | 3 ++ java/org/apache/el/parser/AstTrue.java | 1 + java/org/apache/el/parser/AstValue.java | 6 ++++ java/org/apache/el/parser/BooleanNode.java | 1 + java/org/apache/el/parser/ParseException.java | 1 + java/org/apache/el/parser/SimpleNode.java | 1 + java/org/apache/el/parser/Token.java | 1 + java/org/apache/el/parser/TokenMgrError.java | 1 + 49 files changed, 152 insertions(+) diff --git a/java/org/apache/el/ExpressionFactoryImpl.java b/java/org/apache/el/ExpressionFactoryImpl.java index 02263dfef..8260ab62b 100644 --- a/java/org/apache/el/ExpressionFactoryImpl.java +++ b/java/org/apache/el/ExpressionFactoryImpl.java @@ -42,10 +42,12 @@ public class ExpressionFactoryImpl extends ExpressionFactory { super(); } + @Override public Object coerceToType(Object obj, Class type) { return ELSupport.coerceToType(obj, type); } + @Override public MethodExpression createMethodExpression(ELContext context, String expression, Class expectedReturnType, Class[] expectedParamTypes) { @@ -58,6 +60,7 @@ public class ExpressionFactoryImpl extends ExpressionFactory { expectedParamTypes); } + @Override public ValueExpression createValueExpression(ELContext context, String expression, Class expectedType) { if (expectedType == null) { @@ -68,6 +71,7 @@ public class ExpressionFactoryImpl extends ExpressionFactory { return builder.createValueExpression(expectedType); } + @Override public ValueExpression createValueExpression(Object instance, Class expectedType) { if (expectedType == null) { diff --git a/java/org/apache/el/MethodExpressionImpl.java b/java/org/apache/el/MethodExpressionImpl.java index ce0c04402..f0819af9a 100644 --- a/java/org/apache/el/MethodExpressionImpl.java +++ b/java/org/apache/el/MethodExpressionImpl.java @@ -145,6 +145,7 @@ public final class MethodExpressionImpl extends MethodExpression implements * @see java.util.Hashtable * @see java.lang.Object#equals(java.lang.Object) */ + @Override public boolean equals(Object obj) { return (obj instanceof MethodExpressionImpl && obj.hashCode() == this .hashCode()); @@ -171,6 +172,7 @@ public final class MethodExpressionImpl extends MethodExpression implements * * @see javax.el.Expression#getExpressionString() */ + @Override public String getExpressionString() { return this.expr; } @@ -197,6 +199,7 @@ public final class MethodExpressionImpl extends MethodExpression implements * the cause property of this exception, if available. * @see javax.el.MethodExpression#getMethodInfo(javax.el.ELContext) */ + @Override public MethodInfo getMethodInfo(ELContext context) throws PropertyNotFoundException, MethodNotFoundException, ELException { @@ -234,6 +237,7 @@ public final class MethodExpressionImpl extends MethodExpression implements * @see java.util.Hashtable * @see java.lang.Object#hashCode() */ + @Override public int hashCode() { return this.expr.hashCode(); } @@ -268,6 +272,7 @@ public final class MethodExpressionImpl extends MethodExpression implements * @see javax.el.MethodExpression#invoke(javax.el.ELContext, * java.lang.Object[]) */ + @Override public Object invoke(ELContext context, Object[] params) throws PropertyNotFoundException, MethodNotFoundException, ELException { @@ -308,6 +313,7 @@ public final class MethodExpressionImpl extends MethodExpression implements out.writeObject(this.varMapper); } + @Override public boolean isLiteralText() { return false; } diff --git a/java/org/apache/el/MethodExpressionLiteral.java b/java/org/apache/el/MethodExpressionLiteral.java index 5e3ed0fac..dc771e42d 100644 --- a/java/org/apache/el/MethodExpressionLiteral.java +++ b/java/org/apache/el/MethodExpressionLiteral.java @@ -50,10 +50,12 @@ public class MethodExpressionLiteral extends MethodExpression implements Externa this.paramTypes = paramTypes; } + @Override public MethodInfo getMethodInfo(ELContext context) throws ELException { return new MethodInfo(this.expr, this.expectedType, this.paramTypes); } + @Override public Object invoke(ELContext context, Object[] params) throws ELException { if (this.expectedType != null) { return ELSupport.coerceToType(this.expr, this.expectedType); @@ -62,18 +64,22 @@ public class MethodExpressionLiteral extends MethodExpression implements Externa } } + @Override public String getExpressionString() { return this.expr; } + @Override public boolean equals(Object obj) { return (obj instanceof MethodExpressionLiteral && this.hashCode() == obj.hashCode()); } + @Override public int hashCode() { return this.expr.hashCode(); } + @Override public boolean isLiteralText() { return true; } diff --git a/java/org/apache/el/ValueExpressionImpl.java b/java/org/apache/el/ValueExpressionImpl.java index b8f343039..74d84a878 100644 --- a/java/org/apache/el/ValueExpressionImpl.java +++ b/java/org/apache/el/ValueExpressionImpl.java @@ -123,6 +123,7 @@ public final class ValueExpressionImpl extends ValueExpression implements * * @see java.lang.Object#equals(java.lang.Object) */ + @Override public boolean equals(Object obj) { return (obj instanceof ValueExpressionImpl && obj.hashCode() == this .hashCode()); @@ -133,6 +134,7 @@ public final class ValueExpressionImpl extends ValueExpression implements * * @see javax.el.ValueExpression#getExpectedType() */ + @Override public Class getExpectedType() { return this.expectedType; } @@ -147,6 +149,7 @@ public final class ValueExpressionImpl extends ValueExpression implements * * @see javax.el.Expression#getExpressionString() */ + @Override public String getExpressionString() { return this.expr; } @@ -167,6 +170,7 @@ public final class ValueExpressionImpl extends ValueExpression implements * * @see javax.el.ValueExpression#getType(javax.el.ELContext) */ + @Override public Class getType(ELContext context) throws PropertyNotFoundException, ELException { EvaluationContext ctx = new EvaluationContext(context, this.fnMapper, @@ -179,6 +183,7 @@ public final class ValueExpressionImpl extends ValueExpression implements * * @see javax.el.ValueExpression#getValue(javax.el.ELContext) */ + @Override public Object getValue(ELContext context) throws PropertyNotFoundException, ELException { EvaluationContext ctx = new EvaluationContext(context, this.fnMapper, @@ -195,6 +200,7 @@ public final class ValueExpressionImpl extends ValueExpression implements * * @see java.lang.Object#hashCode() */ + @Override public int hashCode() { return this.expr.hashCode(); } @@ -204,6 +210,7 @@ public final class ValueExpressionImpl extends ValueExpression implements * * @see javax.el.ValueExpression#isLiteralText() */ + @Override public boolean isLiteralText() { try { return this.getNode() instanceof AstLiteralExpression; @@ -217,6 +224,7 @@ public final class ValueExpressionImpl extends ValueExpression implements * * @see javax.el.ValueExpression#isReadOnly(javax.el.ELContext) */ + @Override public boolean isReadOnly(ELContext context) throws PropertyNotFoundException, ELException { EvaluationContext ctx = new EvaluationContext(context, this.fnMapper, @@ -241,6 +249,7 @@ public final class ValueExpressionImpl extends ValueExpression implements * @see javax.el.ValueExpression#setValue(javax.el.ELContext, * java.lang.Object) */ + @Override public void setValue(ELContext context, Object value) throws PropertyNotFoundException, PropertyNotWritableException, ELException { @@ -257,6 +266,7 @@ public final class ValueExpressionImpl extends ValueExpression implements out.writeObject(this.varMapper); } + @Override public String toString() { return "ValueExpression["+this.expr+"]"; } diff --git a/java/org/apache/el/ValueExpressionLiteral.java b/java/org/apache/el/ValueExpressionLiteral.java index 0dd615896..72d88e355 100644 --- a/java/org/apache/el/ValueExpressionLiteral.java +++ b/java/org/apache/el/ValueExpressionLiteral.java @@ -50,6 +50,7 @@ public final class ValueExpressionLiteral extends ValueExpression implements this.expectedType = expectedType; } + @Override public Object getValue(ELContext context) { if (this.expectedType != null) { return ELSupport.coerceToType(this.value, this.expectedType); @@ -57,27 +58,33 @@ public final class ValueExpressionLiteral extends ValueExpression implements return this.value; } + @Override public void setValue(ELContext context, Object value) { throw new PropertyNotWritableException(MessageFactory.get( "error.value.literal.write", this.value)); } + @Override public boolean isReadOnly(ELContext context) { return true; } + @Override public Class getType(ELContext context) { return (this.value != null) ? this.value.getClass() : null; } + @Override public Class getExpectedType() { return this.expectedType; } + @Override public String getExpressionString() { return (this.value != null) ? this.value.toString() : null; } + @Override public boolean equals(Object obj) { return (obj instanceof ValueExpressionLiteral && this .equals((ValueExpressionLiteral) obj)); @@ -88,10 +95,12 @@ public final class ValueExpressionLiteral extends ValueExpression implements .equals(ve.value)))); } + @Override public int hashCode() { return (this.value != null) ? this.value.hashCode() : 0; } + @Override public boolean isLiteralText() { return true; } diff --git a/java/org/apache/el/lang/ELArithmetic.java b/java/org/apache/el/lang/ELArithmetic.java index 02139933e..5fb19c8eb 100644 --- a/java/org/apache/el/lang/ELArithmetic.java +++ b/java/org/apache/el/lang/ELArithmetic.java @@ -32,10 +32,12 @@ public abstract class ELArithmetic { public final static class BigDecimalDelegate extends ELArithmetic { + @Override protected Number add(Number num0, Number num1) { return ((BigDecimal) num0).add((BigDecimal) num1); } + @Override protected Number coerce(Number num) { if (num instanceof BigDecimal) return num; @@ -44,27 +46,33 @@ public abstract class ELArithmetic { return new BigDecimal(num.doubleValue()); } + @Override protected Number coerce(String str) { return new BigDecimal(str); } + @Override protected Number divide(Number num0, Number num1) { return ((BigDecimal) num0).divide((BigDecimal) num1, BigDecimal.ROUND_HALF_UP); } + @Override protected Number subtract(Number num0, Number num1) { return ((BigDecimal) num0).subtract((BigDecimal) num1); } + @Override protected Number mod(Number num0, Number num1) { return new Double(num0.doubleValue() % num1.doubleValue()); } + @Override protected Number multiply(Number num0, Number num1) { return ((BigDecimal) num0).multiply((BigDecimal) num1); } + @Override public boolean matches(Object obj0, Object obj1) { return (obj0 instanceof BigDecimal || obj1 instanceof BigDecimal); } @@ -72,36 +80,44 @@ public abstract class ELArithmetic { public final static class BigIntegerDelegate extends ELArithmetic { + @Override protected Number add(Number num0, Number num1) { return ((BigInteger) num0).add((BigInteger) num1); } + @Override protected Number coerce(Number num) { if (num instanceof BigInteger) return num; return new BigInteger(num.toString()); } + @Override protected Number coerce(String str) { return new BigInteger(str); } + @Override protected Number divide(Number num0, Number num1) { return (new BigDecimal((BigInteger) num0)).divide(new BigDecimal((BigInteger) num1), BigDecimal.ROUND_HALF_UP); } + @Override protected Number multiply(Number num0, Number num1) { return ((BigInteger) num0).multiply((BigInteger) num1); } + @Override protected Number mod(Number num0, Number num1) { return ((BigInteger) num0).mod((BigInteger) num1); } + @Override protected Number subtract(Number num0, Number num1) { return ((BigInteger) num0).subtract((BigInteger) num1); } + @Override public boolean matches(Object obj0, Object obj1) { return (obj0 instanceof BigInteger || obj1 instanceof BigInteger); } @@ -109,6 +125,7 @@ public abstract class ELArithmetic { public final static class DoubleDelegate extends ELArithmetic { + @Override protected Number add(Number num0, Number num1) { // could only be one of these if (num0 instanceof BigDecimal) { @@ -119,6 +136,7 @@ public abstract class ELArithmetic { return new Double(num0.doubleValue() + num1.doubleValue()); } + @Override protected Number coerce(Number num) { if (num instanceof Double) return num; @@ -127,18 +145,22 @@ public abstract class ELArithmetic { return new Double(num.doubleValue()); } + @Override protected Number coerce(String str) { return new Double(str); } + @Override protected Number divide(Number num0, Number num1) { return new Double(num0.doubleValue() / num1.doubleValue()); } + @Override protected Number mod(Number num0, Number num1) { return new Double(num0.doubleValue() % num1.doubleValue()); } + @Override protected Number subtract(Number num0, Number num1) { // could only be one of these if (num0 instanceof BigDecimal) { @@ -149,6 +171,7 @@ public abstract class ELArithmetic { return new Double(num0.doubleValue() - num1.doubleValue()); } + @Override protected Number multiply(Number num0, Number num1) { // could only be one of these if (num0 instanceof BigDecimal) { @@ -159,6 +182,7 @@ public abstract class ELArithmetic { return new Double(num0.doubleValue() * num1.doubleValue()); } + @Override public boolean matches(Object obj0, Object obj1) { return (obj0 instanceof Double || obj1 instanceof Double @@ -172,36 +196,44 @@ public abstract class ELArithmetic { public final static class LongDelegate extends ELArithmetic { + @Override protected Number add(Number num0, Number num1) { return new Long(num0.longValue() + num1.longValue()); } + @Override protected Number coerce(Number num) { if (num instanceof Long) return num; return new Long(num.longValue()); } + @Override protected Number coerce(String str) { return new Long(str); } + @Override protected Number divide(Number num0, Number num1) { return new Long(num0.longValue() / num1.longValue()); } + @Override protected Number mod(Number num0, Number num1) { return new Long(num0.longValue() % num1.longValue()); } + @Override protected Number subtract(Number num0, Number num1) { return new Long(num0.longValue() - num1.longValue()); } + @Override protected Number multiply(Number num0, Number num1) { return new Long(num0.longValue() * num1.longValue()); } + @Override public boolean matches(Object obj0, Object obj1) { return (obj0 instanceof Long || obj1 instanceof Long); } diff --git a/java/org/apache/el/lang/EvaluationContext.java b/java/org/apache/el/lang/EvaluationContext.java index 94b698045..692470354 100644 --- a/java/org/apache/el/lang/EvaluationContext.java +++ b/java/org/apache/el/lang/EvaluationContext.java @@ -43,38 +43,47 @@ public final class EvaluationContext extends ELContext { return this.elContext; } + @Override public FunctionMapper getFunctionMapper() { return this.fnMapper; } + @Override public VariableMapper getVariableMapper() { return this.varMapper; } + @Override public Object getContext(Class key) { return this.elContext.getContext(key); } + @Override public ELResolver getELResolver() { return this.elContext.getELResolver(); } + @Override public boolean isPropertyResolved() { return this.elContext.isPropertyResolved(); } + @Override public void putContext(Class key, Object contextObject) { this.elContext.putContext(key, contextObject); } + @Override public void setPropertyResolved(boolean resolved) { this.elContext.setPropertyResolved(resolved); } + @Override public Locale getLocale() { return this.elContext.getLocale(); } + @Override public void setLocale(Locale locale) { this.elContext.setLocale(locale); } diff --git a/java/org/apache/el/lang/FunctionMapperFactory.java b/java/org/apache/el/lang/FunctionMapperFactory.java index b75ec6777..37048ffdd 100644 --- a/java/org/apache/el/lang/FunctionMapperFactory.java +++ b/java/org/apache/el/lang/FunctionMapperFactory.java @@ -41,6 +41,7 @@ public class FunctionMapperFactory extends FunctionMapper { /* (non-Javadoc) * @see javax.el.FunctionMapper#resolveFunction(java.lang.String, java.lang.String) */ + @Override public Method resolveFunction(String prefix, String localName) { if (this.memento == null) { this.memento = new FunctionMapperImpl(); diff --git a/java/org/apache/el/lang/FunctionMapperImpl.java b/java/org/apache/el/lang/FunctionMapperImpl.java index 33d271e88..8a6bf394c 100644 --- a/java/org/apache/el/lang/FunctionMapperImpl.java +++ b/java/org/apache/el/lang/FunctionMapperImpl.java @@ -47,6 +47,7 @@ public class FunctionMapperImpl extends FunctionMapper implements * @see javax.el.FunctionMapper#resolveFunction(java.lang.String, * java.lang.String) */ + @Override public Method resolveFunction(String prefix, String localName) { if (this.functions != null) { Function f = this.functions.get(prefix + ":" + localName); @@ -174,6 +175,7 @@ public class FunctionMapperImpl extends FunctionMapper implements /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ + @Override public boolean equals(Object obj) { if (obj instanceof Function) { return this.hashCode() == obj.hashCode(); @@ -184,6 +186,7 @@ public class FunctionMapperImpl extends FunctionMapper implements /* (non-Javadoc) * @see java.lang.Object#hashCode() */ + @Override public int hashCode() { return (this.prefix + this.localName).hashCode(); } diff --git a/java/org/apache/el/lang/VariableMapperFactory.java b/java/org/apache/el/lang/VariableMapperFactory.java index d511ac548..6a937ea08 100644 --- a/java/org/apache/el/lang/VariableMapperFactory.java +++ b/java/org/apache/el/lang/VariableMapperFactory.java @@ -36,6 +36,7 @@ public class VariableMapperFactory extends VariableMapper { return this.momento; } + @Override public ValueExpression resolveVariable(String variable) { ValueExpression expr = this.target.resolveVariable(variable); if (expr != null) { @@ -47,6 +48,7 @@ public class VariableMapperFactory extends VariableMapper { return expr; } + @Override public ValueExpression setVariable(String variable, ValueExpression expression) { throw new UnsupportedOperationException("Cannot Set Variables on Factory"); } diff --git a/java/org/apache/el/lang/VariableMapperImpl.java b/java/org/apache/el/lang/VariableMapperImpl.java index 765c60ab8..f0454e34f 100644 --- a/java/org/apache/el/lang/VariableMapperImpl.java +++ b/java/org/apache/el/lang/VariableMapperImpl.java @@ -37,10 +37,12 @@ public class VariableMapperImpl extends VariableMapper implements Externalizable super(); } + @Override public ValueExpression resolveVariable(String variable) { return this.vars.get(variable); } + @Override public ValueExpression setVariable(String variable, ValueExpression expression) { return this.vars.put(variable, expression); diff --git a/java/org/apache/el/parser/ArithmeticNode.java b/java/org/apache/el/parser/ArithmeticNode.java index 57fa080c9..951527103 100644 --- a/java/org/apache/el/parser/ArithmeticNode.java +++ b/java/org/apache/el/parser/ArithmeticNode.java @@ -35,6 +35,7 @@ public class ArithmeticNode extends SimpleNode { super(i); } + @Override public Class getType(EvaluationContext ctx) throws ELException { return Number.class; diff --git a/java/org/apache/el/parser/AstAnd.java b/java/org/apache/el/parser/AstAnd.java index fb52375f3..d91e7b781 100644 --- a/java/org/apache/el/parser/AstAnd.java +++ b/java/org/apache/el/parser/AstAnd.java @@ -32,6 +32,7 @@ public final class AstAnd extends BooleanNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj = children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstBracketSuffix.java b/java/org/apache/el/parser/AstBracketSuffix.java index c29852dfb..93216a012 100644 --- a/java/org/apache/el/parser/AstBracketSuffix.java +++ b/java/org/apache/el/parser/AstBracketSuffix.java @@ -32,6 +32,7 @@ public final class AstBracketSuffix extends SimpleNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { return this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstChoice.java b/java/org/apache/el/parser/AstChoice.java index 5dc10e9c7..9b3024f2b 100644 --- a/java/org/apache/el/parser/AstChoice.java +++ b/java/org/apache/el/parser/AstChoice.java @@ -32,12 +32,14 @@ public final class AstChoice extends SimpleNode { super(id); } + @Override public Class getType(EvaluationContext ctx) throws ELException { Object val = this.getValue(ctx); return (val != null) ? val.getClass() : null; } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj0 = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstCompositeExpression.java b/java/org/apache/el/parser/AstCompositeExpression.java index 8d3537380..9fde3175a 100644 --- a/java/org/apache/el/parser/AstCompositeExpression.java +++ b/java/org/apache/el/parser/AstCompositeExpression.java @@ -33,11 +33,13 @@ public final class AstCompositeExpression extends SimpleNode { super(id); } + @Override public Class getType(EvaluationContext ctx) throws ELException { return String.class; } + @Override public Object getValue(EvaluationContext ctx) throws ELException { StringBuilder sb = new StringBuilder(16); diff --git a/java/org/apache/el/parser/AstDeferredExpression.java b/java/org/apache/el/parser/AstDeferredExpression.java index 93c3d4282..641f3b0a7 100644 --- a/java/org/apache/el/parser/AstDeferredExpression.java +++ b/java/org/apache/el/parser/AstDeferredExpression.java @@ -32,21 +32,25 @@ public final class AstDeferredExpression extends SimpleNode { super(id); } + @Override public Class getType(EvaluationContext ctx) throws ELException { return this.children[0].getType(ctx); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { return this.children[0].getValue(ctx); } + @Override public boolean isReadOnly(EvaluationContext ctx) throws ELException { return this.children[0].isReadOnly(ctx); } + @Override public void setValue(EvaluationContext ctx, Object value) throws ELException { this.children[0].setValue(ctx, value); diff --git a/java/org/apache/el/parser/AstDiv.java b/java/org/apache/el/parser/AstDiv.java index 5b0b45a4f..967e008cb 100644 --- a/java/org/apache/el/parser/AstDiv.java +++ b/java/org/apache/el/parser/AstDiv.java @@ -33,6 +33,7 @@ public final class AstDiv extends ArithmeticNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj0 = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstDotSuffix.java b/java/org/apache/el/parser/AstDotSuffix.java index f08721ebb..ea64fec01 100644 --- a/java/org/apache/el/parser/AstDotSuffix.java +++ b/java/org/apache/el/parser/AstDotSuffix.java @@ -32,6 +32,7 @@ public final class AstDotSuffix extends SimpleNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { return this.image; diff --git a/java/org/apache/el/parser/AstDynamicExpression.java b/java/org/apache/el/parser/AstDynamicExpression.java index 01787cca5..9e6bad808 100644 --- a/java/org/apache/el/parser/AstDynamicExpression.java +++ b/java/org/apache/el/parser/AstDynamicExpression.java @@ -32,21 +32,25 @@ public final class AstDynamicExpression extends SimpleNode { super(id); } + @Override public Class getType(EvaluationContext ctx) throws ELException { return this.children[0].getType(ctx); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { return this.children[0].getValue(ctx); } + @Override public boolean isReadOnly(EvaluationContext ctx) throws ELException { return this.children[0].isReadOnly(ctx); } + @Override public void setValue(EvaluationContext ctx, Object value) throws ELException { this.children[0].setValue(ctx, value); diff --git a/java/org/apache/el/parser/AstEmpty.java b/java/org/apache/el/parser/AstEmpty.java index a5732ff4b..8b188d538 100644 --- a/java/org/apache/el/parser/AstEmpty.java +++ b/java/org/apache/el/parser/AstEmpty.java @@ -35,11 +35,13 @@ public final class AstEmpty extends SimpleNode { super(id); } + @Override public Class getType(EvaluationContext ctx) throws ELException { return Boolean.class; } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstEqual.java b/java/org/apache/el/parser/AstEqual.java index 812a85ec8..c0fbcecd4 100644 --- a/java/org/apache/el/parser/AstEqual.java +++ b/java/org/apache/el/parser/AstEqual.java @@ -32,6 +32,7 @@ public final class AstEqual extends BooleanNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj0 = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstFalse.java b/java/org/apache/el/parser/AstFalse.java index 66e28d348..2bd7d7dc6 100644 --- a/java/org/apache/el/parser/AstFalse.java +++ b/java/org/apache/el/parser/AstFalse.java @@ -32,6 +32,7 @@ public final class AstFalse extends BooleanNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { return Boolean.FALSE; diff --git a/java/org/apache/el/parser/AstFloatingPoint.java b/java/org/apache/el/parser/AstFloatingPoint.java index 3979a082c..d4c516530 100644 --- a/java/org/apache/el/parser/AstFloatingPoint.java +++ b/java/org/apache/el/parser/AstFloatingPoint.java @@ -47,11 +47,13 @@ public final class AstFloatingPoint extends SimpleNode { return this.number; } + @Override public Object getValue(EvaluationContext ctx) throws ELException { return this.getFloatingPoint(); } + @Override public Class getType(EvaluationContext ctx) throws ELException { return this.getFloatingPoint().getClass(); diff --git a/java/org/apache/el/parser/AstFunction.java b/java/org/apache/el/parser/AstFunction.java index fee5dffdb..25cd2d2f5 100644 --- a/java/org/apache/el/parser/AstFunction.java +++ b/java/org/apache/el/parser/AstFunction.java @@ -58,6 +58,7 @@ public final class AstFunction extends SimpleNode { return prefix; } + @Override public Class getType(EvaluationContext ctx) throws ELException { @@ -75,6 +76,7 @@ public final class AstFunction extends SimpleNode { return m.getReturnType(); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { @@ -127,6 +129,7 @@ public final class AstFunction extends SimpleNode { } + @Override public String toString() { return ELParserTreeConstants.jjtNodeName[id] + "[" + this.getOutputName() + "]"; diff --git a/java/org/apache/el/parser/AstGreaterThan.java b/java/org/apache/el/parser/AstGreaterThan.java index ff36d84bd..8869ed9b4 100644 --- a/java/org/apache/el/parser/AstGreaterThan.java +++ b/java/org/apache/el/parser/AstGreaterThan.java @@ -32,6 +32,7 @@ public final class AstGreaterThan extends BooleanNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj0 = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstGreaterThanEqual.java b/java/org/apache/el/parser/AstGreaterThanEqual.java index 67743f8da..2ffcfe557 100644 --- a/java/org/apache/el/parser/AstGreaterThanEqual.java +++ b/java/org/apache/el/parser/AstGreaterThanEqual.java @@ -32,6 +32,7 @@ public final class AstGreaterThanEqual extends BooleanNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj0 = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstIdentifier.java b/java/org/apache/el/parser/AstIdentifier.java index ce95043b3..5cefbb3a7 100644 --- a/java/org/apache/el/parser/AstIdentifier.java +++ b/java/org/apache/el/parser/AstIdentifier.java @@ -37,6 +37,7 @@ public final class AstIdentifier extends SimpleNode { super(id); } + @Override public Class getType(EvaluationContext ctx) throws ELException { VariableMapper varMapper = ctx.getVariableMapper(); if (varMapper != null) { @@ -49,6 +50,7 @@ public final class AstIdentifier extends SimpleNode { return ctx.getELResolver().getType(ctx, null, this.image); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { VariableMapper varMapper = ctx.getVariableMapper(); if (varMapper != null) { @@ -61,6 +63,7 @@ public final class AstIdentifier extends SimpleNode { return ctx.getELResolver().getValue(ctx, null, this.image); } + @Override public boolean isReadOnly(EvaluationContext ctx) throws ELException { VariableMapper varMapper = ctx.getVariableMapper(); if (varMapper != null) { @@ -73,6 +76,7 @@ public final class AstIdentifier extends SimpleNode { return ctx.getELResolver().isReadOnly(ctx, null, this.image); } + @Override public void setValue(EvaluationContext ctx, Object value) throws ELException { VariableMapper varMapper = ctx.getVariableMapper(); @@ -87,12 +91,14 @@ public final class AstIdentifier extends SimpleNode { ctx.getELResolver().setValue(ctx, null, this.image, value); } + @Override public Object invoke(EvaluationContext ctx, Class[] paramTypes, Object[] paramValues) throws ELException { return this.getMethodExpression(ctx).invoke(ctx.getELContext(), paramValues); } + @Override public MethodInfo getMethodInfo(EvaluationContext ctx, Class[] paramTypes) throws ELException { return this.getMethodExpression(ctx).getMethodInfo(ctx.getELContext()); diff --git a/java/org/apache/el/parser/AstInteger.java b/java/org/apache/el/parser/AstInteger.java index 6162c67c7..b2859eb96 100644 --- a/java/org/apache/el/parser/AstInteger.java +++ b/java/org/apache/el/parser/AstInteger.java @@ -47,11 +47,13 @@ public final class AstInteger extends SimpleNode { return number; } + @Override public Class getType(EvaluationContext ctx) throws ELException { return this.getInteger().getClass(); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { return this.getInteger(); diff --git a/java/org/apache/el/parser/AstLessThan.java b/java/org/apache/el/parser/AstLessThan.java index 163fe18e4..8ff781e16 100644 --- a/java/org/apache/el/parser/AstLessThan.java +++ b/java/org/apache/el/parser/AstLessThan.java @@ -32,6 +32,7 @@ public final class AstLessThan extends BooleanNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj0 = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstLessThanEqual.java b/java/org/apache/el/parser/AstLessThanEqual.java index c71152604..8d41b1f8f 100644 --- a/java/org/apache/el/parser/AstLessThanEqual.java +++ b/java/org/apache/el/parser/AstLessThanEqual.java @@ -32,6 +32,7 @@ public final class AstLessThanEqual extends BooleanNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj0 = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstLiteralExpression.java b/java/org/apache/el/parser/AstLiteralExpression.java index 1bc6e9593..b28a253a0 100644 --- a/java/org/apache/el/parser/AstLiteralExpression.java +++ b/java/org/apache/el/parser/AstLiteralExpression.java @@ -32,14 +32,17 @@ public final class AstLiteralExpression extends SimpleNode { super(id); } + @Override public Class getType(EvaluationContext ctx) throws ELException { return String.class; } + @Override public Object getValue(EvaluationContext ctx) throws ELException { return this.image; } + @Override public void setImage(String image) { if (image.indexOf('\\') == -1) { this.image = image; diff --git a/java/org/apache/el/parser/AstMinus.java b/java/org/apache/el/parser/AstMinus.java index 0c58cdc7a..c64d5f6e8 100644 --- a/java/org/apache/el/parser/AstMinus.java +++ b/java/org/apache/el/parser/AstMinus.java @@ -33,6 +33,7 @@ public final class AstMinus extends ArithmeticNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj0 = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstMod.java b/java/org/apache/el/parser/AstMod.java index a0ba73517..dcaa851b5 100644 --- a/java/org/apache/el/parser/AstMod.java +++ b/java/org/apache/el/parser/AstMod.java @@ -33,6 +33,7 @@ public final class AstMod extends ArithmeticNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj0 = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstMult.java b/java/org/apache/el/parser/AstMult.java index 4c84a4fc2..8bd9f5bc9 100644 --- a/java/org/apache/el/parser/AstMult.java +++ b/java/org/apache/el/parser/AstMult.java @@ -33,6 +33,7 @@ public final class AstMult extends ArithmeticNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj0 = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstNegative.java b/java/org/apache/el/parser/AstNegative.java index 2b1faa0bb..0e49b90eb 100644 --- a/java/org/apache/el/parser/AstNegative.java +++ b/java/org/apache/el/parser/AstNegative.java @@ -35,11 +35,13 @@ public final class AstNegative extends SimpleNode { super(id); } + @Override public Class getType(EvaluationContext ctx) throws ELException { return Number.class; } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstNot.java b/java/org/apache/el/parser/AstNot.java index 6d60e13f3..63f1bacdd 100644 --- a/java/org/apache/el/parser/AstNot.java +++ b/java/org/apache/el/parser/AstNot.java @@ -32,11 +32,13 @@ public final class AstNot extends SimpleNode { super(id); } + @Override public Class getType(EvaluationContext ctx) throws ELException { return Boolean.class; } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstNotEqual.java b/java/org/apache/el/parser/AstNotEqual.java index 2d6a0a8d6..b752e9997 100644 --- a/java/org/apache/el/parser/AstNotEqual.java +++ b/java/org/apache/el/parser/AstNotEqual.java @@ -32,6 +32,7 @@ public final class AstNotEqual extends BooleanNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj0 = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstNull.java b/java/org/apache/el/parser/AstNull.java index df7f825b6..b13fe83ff 100644 --- a/java/org/apache/el/parser/AstNull.java +++ b/java/org/apache/el/parser/AstNull.java @@ -32,11 +32,13 @@ public final class AstNull extends SimpleNode { super(id); } + @Override public Class getType(EvaluationContext ctx) throws ELException { return null; } + @Override public Object getValue(EvaluationContext ctx) throws ELException { return null; diff --git a/java/org/apache/el/parser/AstOr.java b/java/org/apache/el/parser/AstOr.java index db5d35132..d9d40ac31 100644 --- a/java/org/apache/el/parser/AstOr.java +++ b/java/org/apache/el/parser/AstOr.java @@ -32,6 +32,7 @@ public final class AstOr extends BooleanNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstPlus.java b/java/org/apache/el/parser/AstPlus.java index 61ecf6e23..8b34681cf 100644 --- a/java/org/apache/el/parser/AstPlus.java +++ b/java/org/apache/el/parser/AstPlus.java @@ -33,6 +33,7 @@ public final class AstPlus extends ArithmeticNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object obj0 = this.children[0].getValue(ctx); diff --git a/java/org/apache/el/parser/AstString.java b/java/org/apache/el/parser/AstString.java index 707a6977f..ee94bf7da 100644 --- a/java/org/apache/el/parser/AstString.java +++ b/java/org/apache/el/parser/AstString.java @@ -41,16 +41,19 @@ public final class AstString extends SimpleNode { return this.string; } + @Override public Class getType(EvaluationContext ctx) throws ELException { return String.class; } + @Override public Object getValue(EvaluationContext ctx) throws ELException { return this.getString(); } + @Override public void setImage(String image) { if (image.indexOf('\\') == -1) { this.image = image; diff --git a/java/org/apache/el/parser/AstTrue.java b/java/org/apache/el/parser/AstTrue.java index 1f61e17f0..a344d9f2a 100644 --- a/java/org/apache/el/parser/AstTrue.java +++ b/java/org/apache/el/parser/AstTrue.java @@ -32,6 +32,7 @@ public final class AstTrue extends BooleanNode { super(id); } + @Override public Object getValue(EvaluationContext ctx) throws ELException { return Boolean.TRUE; diff --git a/java/org/apache/el/parser/AstValue.java b/java/org/apache/el/parser/AstValue.java index b27e16dc1..6291a95e6 100644 --- a/java/org/apache/el/parser/AstValue.java +++ b/java/org/apache/el/parser/AstValue.java @@ -52,6 +52,7 @@ public final class AstValue extends SimpleNode { super(id); } + @Override public Class getType(EvaluationContext ctx) throws ELException { Target t = getTarget(ctx); ctx.setPropertyResolved(false); @@ -103,6 +104,7 @@ public final class AstValue extends SimpleNode { return t; } + @Override public Object getValue(EvaluationContext ctx) throws ELException { Object base = this.children[0].getValue(ctx); int propCount = this.jjtGetNumChildren(); @@ -122,12 +124,14 @@ public final class AstValue extends SimpleNode { return base; } + @Override public boolean isReadOnly(EvaluationContext ctx) throws ELException { Target t = getTarget(ctx); ctx.setPropertyResolved(false); return ctx.getELResolver().isReadOnly(ctx, t.base, t.property); } + @Override public void setValue(EvaluationContext ctx, Object value) throws ELException { Target t = getTarget(ctx); @@ -155,6 +159,7 @@ public final class AstValue extends SimpleNode { } + @Override public MethodInfo getMethodInfo(EvaluationContext ctx, Class[] paramTypes) throws ELException { Target t = getTarget(ctx); @@ -163,6 +168,7 @@ public final class AstValue extends SimpleNode { .getParameterTypes()); } + @Override public Object invoke(EvaluationContext ctx, Class[] paramTypes, Object[] paramValues) throws ELException { Target t = getTarget(ctx); diff --git a/java/org/apache/el/parser/BooleanNode.java b/java/org/apache/el/parser/BooleanNode.java index e6fd6c89a..1191f75ff 100644 --- a/java/org/apache/el/parser/BooleanNode.java +++ b/java/org/apache/el/parser/BooleanNode.java @@ -32,6 +32,7 @@ public class BooleanNode extends SimpleNode { public BooleanNode(int i) { super(i); } + @Override public Class getType(EvaluationContext ctx) throws ELException { return Boolean.class; diff --git a/java/org/apache/el/parser/ParseException.java b/java/org/apache/el/parser/ParseException.java index 66eb58a8f..c92858f30 100644 --- a/java/org/apache/el/parser/ParseException.java +++ b/java/org/apache/el/parser/ParseException.java @@ -96,6 +96,7 @@ public class ParseException extends Exception { * of the final stack trace, and hence the correct error message * gets displayed. */ + @Override public String getMessage() { if (!specialConstructor) { return super.getMessage(); diff --git a/java/org/apache/el/parser/SimpleNode.java b/java/org/apache/el/parser/SimpleNode.java index 737dc2c5f..79bef0b00 100644 --- a/java/org/apache/el/parser/SimpleNode.java +++ b/java/org/apache/el/parser/SimpleNode.java @@ -84,6 +84,7 @@ public abstract class SimpleNode extends ELSupport implements Node { * otherwise overriding toString() is probably all you need to do. */ + @Override public String toString() { if (this.image != null) { return ELParserTreeConstants.jjtNodeName[id] + "[" + this.image diff --git a/java/org/apache/el/parser/Token.java b/java/org/apache/el/parser/Token.java index 001732d9d..d139c14b1 100644 --- a/java/org/apache/el/parser/Token.java +++ b/java/org/apache/el/parser/Token.java @@ -90,6 +90,7 @@ public class Token { /** * Returns the image. */ + @Override public String toString() { return image; diff --git a/java/org/apache/el/parser/TokenMgrError.java b/java/org/apache/el/parser/TokenMgrError.java index f35288af0..80c5ec332 100644 --- a/java/org/apache/el/parser/TokenMgrError.java +++ b/java/org/apache/el/parser/TokenMgrError.java @@ -114,6 +114,7 @@ public class TokenMgrError extends Error * * from this method for such cases in the release version of your parser. */ + @Override public String getMessage() { return super.getMessage(); } -- 2.11.0