From c847bb3c14f74b09c56a1c398ea489b37cd53507 Mon Sep 17 00:00:00 2001 From: sebthom Date: Fri, 4 Dec 2020 22:32:18 +0100 Subject: [PATCH] Make remaining AST classes public. Fixes jkuhnert/ognl#102 --- src/main/java/ognl/ASTAdd.java | 2 +- src/main/java/ognl/ASTAssign.java | 34 +++++++++---------- src/main/java/ognl/ASTBitAnd.java | 4 +-- src/main/java/ognl/ASTBitNegate.java | 2 +- src/main/java/ognl/ASTBitOr.java | 2 +- src/main/java/ognl/ASTDivide.java | 4 +-- src/main/java/ognl/ASTEq.java | 6 ++-- src/main/java/ognl/ASTEval.java | 6 ++-- src/main/java/ognl/ASTGreater.java | 6 ++-- src/main/java/ognl/ASTGreaterEq.java | 4 +-- src/main/java/ognl/ASTIn.java | 20 +++++------ src/main/java/ognl/ASTKeyValue.java | 2 +- src/main/java/ognl/ASTLessEq.java | 10 +++--- src/main/java/ognl/ASTMap.java | 20 +++++------ src/main/java/ognl/ASTMultiply.java | 4 +-- src/main/java/ognl/ASTNegate.java | 2 +- src/main/java/ognl/ASTNot.java | 12 +++---- src/main/java/ognl/ASTNotEq.java | 6 ++-- src/main/java/ognl/ASTNotIn.java | 16 ++++----- src/main/java/ognl/ASTProject.java | 14 ++++---- src/main/java/ognl/ASTRemainder.java | 2 +- src/main/java/ognl/ASTSelect.java | 13 ++++--- src/main/java/ognl/ASTSelectFirst.java | 6 ++-- src/main/java/ognl/ASTSelectLast.java | 6 ++-- src/main/java/ognl/ASTShiftLeft.java | 2 +- src/main/java/ognl/ASTShiftRight.java | 2 +- src/main/java/ognl/ASTSubtract.java | 2 +- src/main/java/ognl/ASTTest.java | 20 +++++------ src/main/java/ognl/ASTUnsignedShiftRight.java | 4 +-- src/main/java/ognl/ASTVarRef.java | 27 +++++++-------- src/main/java/ognl/ASTXor.java | 2 +- 31 files changed, 130 insertions(+), 132 deletions(-) diff --git a/src/main/java/ognl/ASTAdd.java b/src/main/java/ognl/ASTAdd.java index b8541b9e..3356f263 100644 --- a/src/main/java/ognl/ASTAdd.java +++ b/src/main/java/ognl/ASTAdd.java @@ -40,7 +40,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTAdd extends NumericExpression +public class ASTAdd extends NumericExpression { public ASTAdd(int id) { diff --git a/src/main/java/ognl/ASTAssign.java b/src/main/java/ognl/ASTAssign.java index 07a1a162..d09aa1ae 100644 --- a/src/main/java/ognl/ASTAssign.java +++ b/src/main/java/ognl/ASTAssign.java @@ -37,7 +37,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTAssign extends SimpleNode +public class ASTAssign extends SimpleNode { public ASTAssign(int id) { super(id); @@ -58,20 +58,20 @@ public String toString() { return _children[0] + " = " + _children[1]; } - + public String toGetSourceString(OgnlContext context, Object target) { String result = ""; String first = _children[0].toGetSourceString(context, target); String second = ""; - + if (ASTProperty.class.isInstance(_children[1])) { second += "((" + OgnlRuntime.getCompiler().getClassName(target.getClass()) + ")$2)."; } - + second += _children[1].toGetSourceString(context, target); - + if (ASTSequence.class.isAssignableFrom(_children[1].getClass())) { ASTSequence seq = (ASTSequence)_children[1]; @@ -89,10 +89,10 @@ public String toGetSourceString(OgnlContext context, Object target) if (NodeType.class.isInstance(_children[1]) && !ASTProperty.class.isInstance(_children[1]) && ((NodeType)_children[1]).getGetterClass() != null && !OrderedReturn.class.isInstance(_children[1])) { - + second = "new " + ((NodeType)_children[1]).getGetterClass().getName() + "(" + second + ")"; } - + if (OrderedReturn.class.isAssignableFrom(_children[0].getClass()) && ((OrderedReturn)_children[0]).getCoreExpression() != null) { context.setCurrentType(Object.class); @@ -108,35 +108,35 @@ public String toGetSourceString(OgnlContext context, Object target) return result; } - + public String toSetSourceString(OgnlContext context, Object target) { String result = ""; - + result += _children[0].toSetSourceString(context, target); - + if (ASTProperty.class.isInstance(_children[1])) { result += "((" + OgnlRuntime.getCompiler().getClassName(target.getClass()) + ")$2)."; } - + String value =_children[1].toSetSourceString(context, target); - + if (value == null) throw new UnsupportedCompilationException("Value for assignment is null, can't enhance statement to bytecode."); - + if (ASTSequence.class.isAssignableFrom(_children[1].getClass())) { ASTSequence seq = (ASTSequence)_children[1]; result = seq.getCoreExpression() + result; value = seq.getLastExpression(); } - - if (NodeType.class.isInstance(_children[1]) + + if (NodeType.class.isInstance(_children[1]) && !ASTProperty.class.isInstance(_children[1]) && ((NodeType)_children[1]).getGetterClass() != null) { - + value = "new " + ((NodeType)_children[1]).getGetterClass().getName() + "(" + value + ")"; } - + return result + value + ")"; } diff --git a/src/main/java/ognl/ASTBitAnd.java b/src/main/java/ognl/ASTBitAnd.java index 5b6fea70..cd2f7bb0 100644 --- a/src/main/java/ognl/ASTBitAnd.java +++ b/src/main/java/ognl/ASTBitAnd.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTBitAnd extends NumericExpression +public class ASTBitAnd extends NumericExpression { public ASTBitAnd(int id) { super(id); @@ -60,7 +60,7 @@ public String getExpressionOperator(int index) { return "&"; } - + public String coerceToNumeric(String source, OgnlContext context, Node child) { return "(long)" + super.coerceToNumeric(source, context, child); diff --git a/src/main/java/ognl/ASTBitNegate.java b/src/main/java/ognl/ASTBitNegate.java index 0ba8bde2..71fc2f19 100644 --- a/src/main/java/ognl/ASTBitNegate.java +++ b/src/main/java/ognl/ASTBitNegate.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTBitNegate extends NumericExpression +public class ASTBitNegate extends NumericExpression { public ASTBitNegate(int id) { super(id); diff --git a/src/main/java/ognl/ASTBitOr.java b/src/main/java/ognl/ASTBitOr.java index 5b92d737..453a06b7 100644 --- a/src/main/java/ognl/ASTBitOr.java +++ b/src/main/java/ognl/ASTBitOr.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTBitOr extends NumericExpression +public class ASTBitOr extends NumericExpression { public ASTBitOr(int id) { super(id); diff --git a/src/main/java/ognl/ASTDivide.java b/src/main/java/ognl/ASTDivide.java index 3984ae72..e0baeff7 100644 --- a/src/main/java/ognl/ASTDivide.java +++ b/src/main/java/ognl/ASTDivide.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTDivide extends NumericExpression +public class ASTDivide extends NumericExpression { public ASTDivide(int id) { super(id); @@ -55,5 +55,5 @@ public String getExpressionOperator(int index) { return "/"; } - + } diff --git a/src/main/java/ognl/ASTEq.java b/src/main/java/ognl/ASTEq.java index 7e57bf0f..b3d3f097 100644 --- a/src/main/java/ognl/ASTEq.java +++ b/src/main/java/ognl/ASTEq.java @@ -35,7 +35,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTEq extends ComparisonExpression +public class ASTEq extends ComparisonExpression { public ASTEq(int id) { super(id); @@ -51,12 +51,12 @@ protected Object getValueBody( OgnlContext context, Object source ) throws OgnlE Object v2 = _children[1].getValue( context, source ); return OgnlOps.equal( v1, v2 )? Boolean.TRUE : Boolean.FALSE; } - + public String getExpressionOperator(int index) { return "=="; } - + public String getComparisonFunction() { return "ognl.OgnlOps.equal"; diff --git a/src/main/java/ognl/ASTEval.java b/src/main/java/ognl/ASTEval.java index e55b776b..cee2fea1 100644 --- a/src/main/java/ognl/ASTEval.java +++ b/src/main/java/ognl/ASTEval.java @@ -36,7 +36,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTEval extends SimpleNode +public class ASTEval extends SimpleNode { public ASTEval(int id) @@ -91,12 +91,12 @@ public String toString() { return "(" + _children[0] + ")(" + _children[1] + ")"; } - + public String toGetSourceString(OgnlContext context, Object target) { throw new UnsupportedCompilationException("Eval expressions not supported as native java yet."); } - + public String toSetSourceString(OgnlContext context, Object target) { throw new UnsupportedCompilationException("Map expressions not supported as native java yet."); diff --git a/src/main/java/ognl/ASTGreater.java b/src/main/java/ognl/ASTGreater.java index b6d0f35f..d10f4fea 100644 --- a/src/main/java/ognl/ASTGreater.java +++ b/src/main/java/ognl/ASTGreater.java @@ -35,7 +35,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTGreater extends ComparisonExpression +public class ASTGreater extends ComparisonExpression { public ASTGreater(int id) { super(id); @@ -49,7 +49,7 @@ protected Object getValueBody( OgnlContext context, Object source ) throws OgnlE { Object v1 = _children[0].getValue( context, source ); Object v2 = _children[1].getValue( context, source ); - + return OgnlOps.greater( v1, v2 )? Boolean.TRUE : Boolean.FALSE; } @@ -57,7 +57,7 @@ public String getExpressionOperator(int index) { return ">"; } - + public String getComparisonFunction() { return "ognl.OgnlOps.greater"; diff --git a/src/main/java/ognl/ASTGreaterEq.java b/src/main/java/ognl/ASTGreaterEq.java index 3d44094c..09550112 100644 --- a/src/main/java/ognl/ASTGreaterEq.java +++ b/src/main/java/ognl/ASTGreaterEq.java @@ -35,7 +35,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTGreaterEq extends ComparisonExpression +public class ASTGreaterEq extends ComparisonExpression { public ASTGreaterEq(int id) { super(id); @@ -56,7 +56,7 @@ public String getExpressionOperator(int index) { return ">="; } - + public String getComparisonFunction() { return "!ognl.OgnlOps.less"; diff --git a/src/main/java/ognl/ASTIn.java b/src/main/java/ognl/ASTIn.java index 4b49081f..32e379a1 100644 --- a/src/main/java/ognl/ASTIn.java +++ b/src/main/java/ognl/ASTIn.java @@ -36,7 +36,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTIn extends SimpleNode implements NodeType +public class ASTIn extends SimpleNode implements NodeType { public ASTIn(int id) { super(id); @@ -46,7 +46,7 @@ public ASTIn(OgnlParser p, int id) { super(p, id); } - protected Object getValueBody( OgnlContext context, Object source ) + protected Object getValueBody( OgnlContext context, Object source ) throws OgnlException { Object v1 = _children[0].getValue( context, source ); @@ -59,41 +59,41 @@ public String toString() { return _children[0] + " in " + _children[1]; } - + public Class getGetterClass() { return Boolean.TYPE; } - + public Class getSetterClass() { return null; } - + public String toGetSourceString(OgnlContext context, Object target) { try { String result = "ognl.OgnlOps.in( ($w) "; - + result += OgnlRuntime.getChildSource(context, target, _children[0]) + ", ($w) " + OgnlRuntime.getChildSource(context, target, _children[1]); - + result += ")"; context.setCurrentType(Boolean.TYPE); return result; } catch (NullPointerException e) { - + // expected to happen in some instances e.printStackTrace(); - + throw new UnsupportedCompilationException("evaluation resulted in null expression."); } catch (Throwable t) { throw OgnlOps.castToRuntime(t); } } - + public String toSetSourceString(OgnlContext context, Object target) { throw new UnsupportedCompilationException("Map expressions not supported as native java yet."); diff --git a/src/main/java/ognl/ASTKeyValue.java b/src/main/java/ognl/ASTKeyValue.java index 2002f432..cc78375a 100644 --- a/src/main/java/ognl/ASTKeyValue.java +++ b/src/main/java/ognl/ASTKeyValue.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTKeyValue extends SimpleNode +public class ASTKeyValue extends SimpleNode { public ASTKeyValue(int id) { super(id); diff --git a/src/main/java/ognl/ASTLessEq.java b/src/main/java/ognl/ASTLessEq.java index 64f2f871..7e08702d 100644 --- a/src/main/java/ognl/ASTLessEq.java +++ b/src/main/java/ognl/ASTLessEq.java @@ -35,8 +35,8 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTLessEq extends ComparisonExpression -{ +public class ASTLessEq extends ComparisonExpression +{ public ASTLessEq(int id) { super(id); } @@ -51,15 +51,15 @@ protected Object getValueBody( OgnlContext context, Object source ) throws OgnlE Object v2 = _children[1].getValue( context, source ); return OgnlOps.greater( v1, v2 )? Boolean.FALSE : Boolean.TRUE; } - + public String getExpressionOperator(int index) { return "<="; } - + public String getComparisonFunction() { return "!ognl.OgnlOps.greater"; } - + } diff --git a/src/main/java/ognl/ASTMap.java b/src/main/java/ognl/ASTMap.java index d3375b0f..cb4650a9 100644 --- a/src/main/java/ognl/ASTMap.java +++ b/src/main/java/ognl/ASTMap.java @@ -39,7 +39,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTMap extends SimpleNode +public class ASTMap extends SimpleNode { private static Class DEFAULT_MAP_CLASS; @@ -53,7 +53,7 @@ class ASTMap extends SimpleNode DEFAULT_MAP_CLASS = HashMap.class; } } - + public ASTMap(int id) { super(id); @@ -73,7 +73,7 @@ protected Object getValueBody(OgnlContext context, Object source) throws OgnlException { Map answer; - + if (className == null) { try { answer = (Map) DEFAULT_MAP_CLASS.newInstance(); @@ -89,25 +89,25 @@ protected Object getValueBody(OgnlContext context, Object source) throw new OgnlException("Map implementor '" + className + "' not found", ex); } } - + for(int i = 0; i < jjtGetNumChildren(); ++i) { ASTKeyValue kv = (ASTKeyValue) _children[i]; Node k = kv.getKey(), v = kv.getValue(); - + answer.put(k.getValue(context, source), (v == null) ? null : v.getValue(context, source)); } - + return answer; } public String toString() { String result = "#"; - + if (className != null) { result = result + "@" + className + "@"; } - + result = result + "{ "; for(int i = 0; i < jjtGetNumChildren(); ++i) { ASTKeyValue kv = (ASTKeyValue) _children[i]; @@ -119,12 +119,12 @@ public String toString() } return result + " }"; } - + public String toGetSourceString(OgnlContext context, Object target) { throw new UnsupportedCompilationException("Map expressions not supported as native java yet."); } - + public String toSetSourceString(OgnlContext context, Object target) { throw new UnsupportedCompilationException("Map expressions not supported as native java yet."); diff --git a/src/main/java/ognl/ASTMultiply.java b/src/main/java/ognl/ASTMultiply.java index 6b02c870..85dd2716 100644 --- a/src/main/java/ognl/ASTMultiply.java +++ b/src/main/java/ognl/ASTMultiply.java @@ -34,9 +34,9 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTMultiply extends NumericExpression +public class ASTMultiply extends NumericExpression { - + public ASTMultiply(int id) { super(id); } diff --git a/src/main/java/ognl/ASTNegate.java b/src/main/java/ognl/ASTNegate.java index 7b3d946c..482eff12 100644 --- a/src/main/java/ognl/ASTNegate.java +++ b/src/main/java/ognl/ASTNegate.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTNegate extends NumericExpression +public class ASTNegate extends NumericExpression { public ASTNegate(int id) { super(id); diff --git a/src/main/java/ognl/ASTNot.java b/src/main/java/ognl/ASTNot.java index 828a8d6d..15eece89 100644 --- a/src/main/java/ognl/ASTNot.java +++ b/src/main/java/ognl/ASTNot.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTNot extends BooleanExpression +public class ASTNot extends BooleanExpression { public ASTNot(int id) { super(id); @@ -53,20 +53,20 @@ public String getExpressionOperator(int index) { return "!"; } - + public String toGetSourceString(OgnlContext context, Object target) { try { - + String srcString = super.toGetSourceString(context, target); - + if (srcString == null || srcString.trim().length() < 1) srcString = "null"; - + context.setCurrentType(Boolean.TYPE); return "(! ognl.OgnlOps.booleanValue(" + srcString + ") )"; - + } catch (Throwable t) { throw OgnlOps.castToRuntime(t); diff --git a/src/main/java/ognl/ASTNotEq.java b/src/main/java/ognl/ASTNotEq.java index 99a77312..3a7ce3e7 100644 --- a/src/main/java/ognl/ASTNotEq.java +++ b/src/main/java/ognl/ASTNotEq.java @@ -35,7 +35,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTNotEq extends ComparisonExpression +public class ASTNotEq extends ComparisonExpression { public ASTNotEq(int id) { super(id); @@ -49,7 +49,7 @@ protected Object getValueBody( OgnlContext context, Object source ) throws OgnlE { Object v1 = _children[0].getValue( context, source ); Object v2 = _children[1].getValue( context, source ); - + return OgnlOps.equal( v1, v2 ) ? Boolean.FALSE : Boolean.TRUE; } @@ -57,7 +57,7 @@ public String getExpressionOperator(int index) { return "!="; } - + public String getComparisonFunction() { return "!ognl.OgnlOps.equal"; diff --git a/src/main/java/ognl/ASTNotIn.java b/src/main/java/ognl/ASTNotIn.java index bf2f892b..6dba0c46 100644 --- a/src/main/java/ognl/ASTNotIn.java +++ b/src/main/java/ognl/ASTNotIn.java @@ -36,7 +36,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTNotIn extends SimpleNode implements NodeType +public class ASTNotIn extends SimpleNode implements NodeType { public ASTNotIn(int id) { super(id); @@ -57,34 +57,34 @@ public String toString() { return _children[0] + " not in " + _children[1]; } - + public Class getGetterClass() { return Boolean.TYPE; } - + public Class getSetterClass() { return null; } - + public String toGetSourceString(OgnlContext context, Object target) { try { String result = "(! ognl.OgnlOps.in( ($w) "; - + result += OgnlRuntime.getChildSource(context, target, _children[0]) + ", ($w) " + OgnlRuntime.getChildSource(context, target, _children[1]); - + result += ") )"; context.setCurrentType(Boolean.TYPE); return result; } catch (NullPointerException e) { - + // expected to happen in some instances e.printStackTrace(); - + throw new UnsupportedCompilationException("evaluation resulted in null expression."); } catch (Throwable t) { diff --git a/src/main/java/ognl/ASTProject.java b/src/main/java/ognl/ASTProject.java index a94f4f3a..3034b9c9 100644 --- a/src/main/java/ognl/ASTProject.java +++ b/src/main/java/ognl/ASTProject.java @@ -40,7 +40,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTProject extends SimpleNode +public class ASTProject extends SimpleNode { public ASTProject(int id) @@ -52,20 +52,20 @@ public ASTProject(OgnlParser p, int id) { super(p, id); } - + protected Object getValueBody(OgnlContext context, Object source) throws OgnlException { Node expr = _children[0]; List answer = new ArrayList(); - + ElementsAccessor elementsAccessor = OgnlRuntime.getElementsAccessor(OgnlRuntime.getTargetClass(source)); - + for(Enumeration e = elementsAccessor.getElements(source); e.hasMoreElements();) { - + answer.add(expr.getValue(context, e.nextElement())); } - + return answer; } @@ -73,7 +73,7 @@ public String toString() { return "{ " + _children[0] + " }"; } - + public String toGetSourceString(OgnlContext context, Object target) { throw new UnsupportedCompilationException("Projection expressions not supported as native java yet."); diff --git a/src/main/java/ognl/ASTRemainder.java b/src/main/java/ognl/ASTRemainder.java index f6d04007..999bd799 100644 --- a/src/main/java/ognl/ASTRemainder.java +++ b/src/main/java/ognl/ASTRemainder.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTRemainder extends NumericExpression +public class ASTRemainder extends NumericExpression { public ASTRemainder(int id) { super(id); diff --git a/src/main/java/ognl/ASTSelect.java b/src/main/java/ognl/ASTSelect.java index f560f8b3..d2590de1 100644 --- a/src/main/java/ognl/ASTSelect.java +++ b/src/main/java/ognl/ASTSelect.java @@ -40,9 +40,8 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTSelect extends SimpleNode +public class ASTSelect extends SimpleNode { - public ASTSelect(int id) { super(id); @@ -58,16 +57,16 @@ protected Object getValueBody(OgnlContext context, Object source) { Node expr = _children[0]; List answer = new ArrayList(); - + ElementsAccessor elementsAccessor = OgnlRuntime.getElementsAccessor(OgnlRuntime.getTargetClass(source)); - + for(Enumeration e = elementsAccessor.getElements(source); e.hasMoreElements();) { Object next = e.nextElement(); - - if (OgnlOps.booleanValue(expr.getValue(context, next))) + + if (OgnlOps.booleanValue(expr.getValue(context, next))) answer.add(next); } - + return answer; } diff --git a/src/main/java/ognl/ASTSelectFirst.java b/src/main/java/ognl/ASTSelectFirst.java index 9b48b259..9d8c7fb5 100644 --- a/src/main/java/ognl/ASTSelectFirst.java +++ b/src/main/java/ognl/ASTSelectFirst.java @@ -40,7 +40,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTSelectFirst extends SimpleNode +public class ASTSelectFirst extends SimpleNode { public ASTSelectFirst(int id) { super(id); @@ -71,12 +71,12 @@ public String toString() { return "{^ " + _children[0] + " }"; } - + public String toGetSourceString(OgnlContext context, Object target) { throw new UnsupportedCompilationException("Eval expressions not supported as native java yet."); } - + public String toSetSourceString(OgnlContext context, Object target) { throw new UnsupportedCompilationException("Eval expressions not supported as native java yet."); diff --git a/src/main/java/ognl/ASTSelectLast.java b/src/main/java/ognl/ASTSelectLast.java index 5f7f412c..a1ed057f 100644 --- a/src/main/java/ognl/ASTSelectLast.java +++ b/src/main/java/ognl/ASTSelectLast.java @@ -40,7 +40,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTSelectLast extends SimpleNode +public class ASTSelectLast extends SimpleNode { public ASTSelectLast(int id) { super(id); @@ -71,12 +71,12 @@ public String toString() { return "{$ " + _children[0] + " }"; } - + public String toGetSourceString(OgnlContext context, Object target) { throw new UnsupportedCompilationException("Eval expressions not supported as native java yet."); } - + public String toSetSourceString(OgnlContext context, Object target) { throw new UnsupportedCompilationException("Eval expressions not supported as native java yet."); diff --git a/src/main/java/ognl/ASTShiftLeft.java b/src/main/java/ognl/ASTShiftLeft.java index b374ec05..6b58c8a9 100644 --- a/src/main/java/ognl/ASTShiftLeft.java +++ b/src/main/java/ognl/ASTShiftLeft.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTShiftLeft extends NumericExpression +public class ASTShiftLeft extends NumericExpression { public ASTShiftLeft(int id) { super(id); diff --git a/src/main/java/ognl/ASTShiftRight.java b/src/main/java/ognl/ASTShiftRight.java index 28aacd9a..a5b7ec40 100644 --- a/src/main/java/ognl/ASTShiftRight.java +++ b/src/main/java/ognl/ASTShiftRight.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTShiftRight extends NumericExpression +public class ASTShiftRight extends NumericExpression { public ASTShiftRight(int id) { super(id); diff --git a/src/main/java/ognl/ASTSubtract.java b/src/main/java/ognl/ASTSubtract.java index 58885e35..7dc4e96b 100644 --- a/src/main/java/ognl/ASTSubtract.java +++ b/src/main/java/ognl/ASTSubtract.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTSubtract extends NumericExpression +public class ASTSubtract extends NumericExpression { public ASTSubtract(int id) { super(id); diff --git a/src/main/java/ognl/ASTTest.java b/src/main/java/ognl/ASTTest.java index fa0fae4f..dbd0800a 100644 --- a/src/main/java/ognl/ASTTest.java +++ b/src/main/java/ognl/ASTTest.java @@ -36,7 +36,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTTest extends ExpressionNode +public class ASTTest extends ExpressionNode { public ASTTest(int id) { super(id); @@ -64,7 +64,7 @@ public String getExpressionOperator(int index) { return (index == 1) ? "?" : ":"; } - + public String toGetSourceString(OgnlContext context, Object target) { if (target == null) @@ -74,32 +74,32 @@ public String toGetSourceString(OgnlContext context, Object target) throw new UnsupportedCompilationException("Can only compile test expressions with two children." + _children.length); String result = ""; - + try { - String first = OgnlRuntime.getChildSource(context, target, _children[0]); + String first = OgnlRuntime.getChildSource(context, target, _children[0]); if (!OgnlRuntime.isBoolean(first) && !context.getCurrentType().isPrimitive()) first = OgnlRuntime.getCompiler().createLocalReference(context, first, context.getCurrentType()); - + if (ExpressionNode.class.isInstance(_children[0])) { first = "(" + first + ")"; } - + String second = OgnlRuntime.getChildSource(context, target, _children[1]); Class secondType = context.getCurrentType(); if (!OgnlRuntime.isBoolean(second) && !context.getCurrentType().isPrimitive()) second = OgnlRuntime.getCompiler().createLocalReference(context, second, context.getCurrentType()); - if (ExpressionNode.class.isInstance(_children[1])) + if (ExpressionNode.class.isInstance(_children[1])) { second = "(" + second + ")"; } String third = OgnlRuntime.getChildSource(context, target, _children[2]); Class thirdType = context.getCurrentType(); - + if (!OgnlRuntime.isBoolean(third) && !context.getCurrentType().isPrimitive()) third = OgnlRuntime.getCompiler().createLocalReference(context, third, context.getCurrentType()); if (ExpressionNode.class.isInstance(_children[2])) @@ -123,9 +123,9 @@ public String toGetSourceString(OgnlContext context, Object target) context.setCurrentType(mismatched ? Object.class : secondType); return result; - + } catch (NullPointerException e) { - + // expected to happen in some instances throw new UnsupportedCompilationException("evaluation resulted in null expression."); } catch (Throwable t) diff --git a/src/main/java/ognl/ASTUnsignedShiftRight.java b/src/main/java/ognl/ASTUnsignedShiftRight.java index edbdf3dd..8a1d0183 100644 --- a/src/main/java/ognl/ASTUnsignedShiftRight.java +++ b/src/main/java/ognl/ASTUnsignedShiftRight.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTUnsignedShiftRight extends NumericExpression +public class ASTUnsignedShiftRight extends NumericExpression { public ASTUnsignedShiftRight(int id) { super(id); @@ -67,7 +67,7 @@ public String toGetSourceString(OgnlContext context, Object target) String child2 = OgnlRuntime.getChildSource(context, target, _children[1]); child2 = coerceToNumeric(child2, context, _children[1]); - + Object v1 = _children[0].getValue(context, target); int type = OgnlOps.getNumericType(v1); diff --git a/src/main/java/ognl/ASTVarRef.java b/src/main/java/ognl/ASTVarRef.java index 7dc9b73f..e3f4b2a4 100644 --- a/src/main/java/ognl/ASTVarRef.java +++ b/src/main/java/ognl/ASTVarRef.java @@ -33,15 +33,14 @@ import ognl.enhance.OrderedReturn; import ognl.enhance.UnsupportedCompilationException; - /** * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ public class ASTVarRef extends SimpleNode implements NodeType, OrderedReturn { - + private String _name; - + protected Class _getterClass; protected String _core; @@ -51,7 +50,7 @@ public ASTVarRef(int id) { super(id); } - + public ASTVarRef(OgnlParser p, int id) { super(p, id); @@ -61,7 +60,7 @@ void setName(String name) { this._name = name; } - + protected Object getValueBody(OgnlContext context, Object source) throws OgnlException { @@ -73,12 +72,12 @@ protected void setValueBody(OgnlContext context, Object target, Object value) { context.put(_name, value); } - + public Class getGetterClass() { return _getterClass; } - + public Class getSetterClass() { return null; @@ -98,22 +97,22 @@ public String toString() { return "#" + _name; } - + public String toGetSourceString(OgnlContext context, Object target) { Object value = context.get(_name); if (value != null) { - + _getterClass = value.getClass(); } context.setCurrentType(_getterClass); context.setCurrentAccessor(context.getClass()); - + context.setCurrentObject(value); //context.setRoot(context.get(_name)); - + if (context.getCurrentObject() == null) throw new UnsupportedCompilationException("Current context object is null, can't compile var reference."); @@ -123,17 +122,17 @@ public String toGetSourceString(OgnlContext context, Object target) pre = "((" + OgnlRuntime.getCompiler().getInterfaceClass(context.getCurrentType()).getName() + ")"; post = ")"; } - + if (_parent != null && ASTAssign.class.isInstance(_parent)) { _core = "$1.put(\"" + _name + "\","; _last = pre + "$1.get(\"" + _name + "\")" + post; - + return _core; } return pre + "$1.get(\"" + _name + "\")" + post; } - + public String toSetSourceString(OgnlContext context, Object target) { return toGetSourceString(context, target); diff --git a/src/main/java/ognl/ASTXor.java b/src/main/java/ognl/ASTXor.java index 9059b217..95a3ce46 100644 --- a/src/main/java/ognl/ASTXor.java +++ b/src/main/java/ognl/ASTXor.java @@ -34,7 +34,7 @@ * @author Luke Blanshard (blanshlu@netscape.net) * @author Drew Davidson (drew@ognl.org) */ -class ASTXor extends NumericExpression +public class ASTXor extends NumericExpression { public ASTXor(int id) { super(id);