Author: grobmeier Date: Sun Oct 9 13:17:55 2011 New Revision: 1180607 URL: http://svn.apache.org/viewvc?rev=1180607&view=rev Log: OGNL-24: applied patch from Daniel Pitts to support visitor pattern - thanks!
Added: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java (with props) Modified: commons/proper/ognl/trunk/src/changes/changes.xml commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitNegate.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTChain.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTConst.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTCtor.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTDivide.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTEq.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTEval.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTGreater.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTGreaterEq.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTIn.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTInstanceof.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTKeyValue.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTLess.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTLessEq.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTList.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMap.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMethod.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMultiply.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNegate.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNot.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNotEq.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNotIn.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTOr.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTProject.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTProperty.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTRemainder.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTRootVarRef.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelect.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelectFirst.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelectLast.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSequence.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTShiftLeft.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTShiftRight.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTStaticField.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTStaticMethod.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSubtract.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTTest.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTThisVarRef.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTUnsignedShiftRight.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTVarRef.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTXor.java commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Node.java Modified: commons/proper/ognl/trunk/src/changes/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/changes/changes.xml?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/changes/changes.xml (original) +++ commons/proper/ognl/trunk/src/changes/changes.xml Sun Oct 9 13:17:55 2011 @@ -23,7 +23,8 @@ </properties> <body> <release version="4.0-incubating" date="TBD" description="First ASF release under Incubation."> - <action issue="OGNL-8" type="update" dev="Christian Grobmeier">OGNL-8 - enabled generation of javacc Parser classes</action> + <action issue="OGNL-24" type="update" dev="Christian Grobmeier">OGNL-24 - Support visitor pattern on AST (contributed by Daniel Pitts)</action> + <action issue="OGNL-8" type="update" dev="Christian Grobmeier">OGNL-8 - enabled generation of javacc Parser classes)</action> </release> </body> </document> Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java Sun Oct 9 13:17:55 2011 @@ -302,4 +302,9 @@ class ASTAdd throw OgnlOps.castToRuntime( t ); } } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java Sun Oct 9 13:17:55 2011 @@ -186,4 +186,9 @@ public class ASTAnd return result; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java Sun Oct 9 13:17:55 2011 @@ -144,4 +144,9 @@ class ASTAssign return result + value + ")"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java Sun Oct 9 13:17:55 2011 @@ -59,4 +59,9 @@ class ASTBitAnd { return "(long)" + super.coerceToNumeric( source, context, child ); } -} + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } +} \ No newline at end of file Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitNegate.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitNegate.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitNegate.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitNegate.java Sun Oct 9 13:17:55 2011 @@ -60,4 +60,9 @@ class ASTBitNegate return "~(" + source + ")"; } } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java Sun Oct 9 13:17:55 2011 @@ -54,4 +54,9 @@ class ASTBitOr { return "|"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTChain.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTChain.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTChain.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTChain.java Sun Oct 9 13:17:55 2011 @@ -495,4 +495,9 @@ public class ASTChain return result; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTConst.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTConst.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTConst.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTConst.java Sun Oct 9 13:17:55 2011 @@ -213,4 +213,9 @@ public class ASTConst return toGetSourceString( context, target ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTCtor.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTCtor.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTCtor.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTCtor.java Sun Oct 9 13:17:55 2011 @@ -374,4 +374,9 @@ public class ASTCtor { return ""; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTDivide.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTDivide.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTDivide.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTDivide.java Sun Oct 9 13:17:55 2011 @@ -49,4 +49,9 @@ class ASTDivide return "/"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTEq.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTEq.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTEq.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTEq.java Sun Oct 9 13:17:55 2011 @@ -53,4 +53,9 @@ class ASTEq { return "org.apache.commons.ognl.OgnlOps.equal"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTEval.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTEval.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTEval.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTEval.java Sun Oct 9 13:17:55 2011 @@ -92,4 +92,9 @@ class ASTEval { throw new UnsupportedCompilationException( "Map expressions not supported as native java yet." ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTGreater.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTGreater.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTGreater.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTGreater.java Sun Oct 9 13:17:55 2011 @@ -54,4 +54,9 @@ class ASTGreater { return "org.apache.commons.ognl.OgnlOps.greater"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTGreaterEq.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTGreaterEq.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTGreaterEq.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTGreaterEq.java Sun Oct 9 13:17:55 2011 @@ -53,4 +53,9 @@ class ASTGreaterEq { return "!org.apache.commons.ognl.OgnlOps.less"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTIn.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTIn.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTIn.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTIn.java Sun Oct 9 13:17:55 2011 @@ -97,4 +97,9 @@ class ASTIn { throw new UnsupportedCompilationException( "Map expressions not supported as native java yet." ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTInstanceof.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTInstanceof.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTInstanceof.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTInstanceof.java Sun Oct 9 13:17:55 2011 @@ -93,4 +93,9 @@ public class ASTInstanceof { return toGetSourceString( context, target ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTKeyValue.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTKeyValue.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTKeyValue.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTKeyValue.java Sun Oct 9 13:17:55 2011 @@ -59,4 +59,9 @@ class ASTKeyValue { return getKey() + " -> " + getValue(); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTLess.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTLess.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTLess.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTLess.java Sun Oct 9 13:17:55 2011 @@ -54,4 +54,9 @@ class ASTLess { return "org.apache.commons.ognl.OgnlOps.less"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTLessEq.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTLessEq.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTLessEq.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTLessEq.java Sun Oct 9 13:17:55 2011 @@ -54,4 +54,9 @@ class ASTLessEq return "!org.apache.commons.ognl.OgnlOps.greater"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTList.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTList.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTList.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTList.java Sun Oct 9 13:17:55 2011 @@ -235,4 +235,9 @@ public class ASTList { throw new UnsupportedCompilationException( "Can't generate setter for ASTList." ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMap.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMap.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMap.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMap.java Sun Oct 9 13:17:55 2011 @@ -137,4 +137,9 @@ class ASTMap { throw new UnsupportedCompilationException( "Map expressions not supported as native java yet." ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMethod.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMethod.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMethod.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMethod.java Sun Oct 9 13:17:55 2011 @@ -575,4 +575,9 @@ public class ASTMethod return result + ")" + post; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMultiply.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMultiply.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMultiply.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTMultiply.java Sun Oct 9 13:17:55 2011 @@ -55,4 +55,9 @@ class ASTMultiply { return "*"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNegate.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNegate.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNegate.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNegate.java Sun Oct 9 13:17:55 2011 @@ -60,4 +60,9 @@ class ASTNegate return "-(" + source + ")"; } } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNot.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNot.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNot.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNot.java Sun Oct 9 13:17:55 2011 @@ -67,4 +67,9 @@ class ASTNot throw OgnlOps.castToRuntime( t ); } } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNotEq.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNotEq.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNotEq.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNotEq.java Sun Oct 9 13:17:55 2011 @@ -54,4 +54,9 @@ class ASTNotEq { return "!org.apache.commons.ognl.OgnlOps.equal"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNotIn.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNotIn.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNotIn.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTNotIn.java Sun Oct 9 13:17:55 2011 @@ -91,4 +91,9 @@ class ASTNotIn throw OgnlOps.castToRuntime( t ); } } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTOr.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTOr.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTOr.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTOr.java Sun Oct 9 13:17:55 2011 @@ -182,4 +182,9 @@ public class ASTOr return result; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTProject.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTProject.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTProject.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTProject.java Sun Oct 9 13:17:55 2011 @@ -74,4 +74,9 @@ class ASTProject { throw new UnsupportedCompilationException( "Projection expressions not supported as native java yet." ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTProperty.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTProperty.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTProperty.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTProperty.java Sun Oct 9 13:17:55 2011 @@ -703,4 +703,9 @@ public class ASTProperty return result; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTRemainder.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTRemainder.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTRemainder.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTRemainder.java Sun Oct 9 13:17:55 2011 @@ -48,4 +48,9 @@ class ASTRemainder { return "%"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTRootVarRef.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTRootVarRef.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTRootVarRef.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTRootVarRef.java Sun Oct 9 13:17:55 2011 @@ -79,4 +79,9 @@ public class ASTRootVarRef else return "$3"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelect.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelect.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelect.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelect.java Sun Oct 9 13:17:55 2011 @@ -76,4 +76,9 @@ class ASTSelect { throw new UnsupportedCompilationException( "Eval expressions not supported as native java yet." ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelectFirst.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelectFirst.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelectFirst.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelectFirst.java Sun Oct 9 13:17:55 2011 @@ -76,4 +76,9 @@ class ASTSelectFirst { throw new UnsupportedCompilationException( "Eval expressions not supported as native java yet." ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelectLast.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelectLast.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelectLast.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSelectLast.java Sun Oct 9 13:17:55 2011 @@ -76,4 +76,9 @@ class ASTSelectLast { throw new UnsupportedCompilationException( "Eval expressions not supported as native java yet." ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSequence.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSequence.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSequence.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSequence.java Sun Oct 9 13:17:55 2011 @@ -166,4 +166,9 @@ public class ASTSequence return result; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTShiftLeft.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTShiftLeft.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTShiftLeft.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTShiftLeft.java Sun Oct 9 13:17:55 2011 @@ -48,4 +48,9 @@ class ASTShiftLeft { return "<<"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTShiftRight.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTShiftRight.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTShiftRight.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTShiftRight.java Sun Oct 9 13:17:55 2011 @@ -48,4 +48,9 @@ class ASTShiftRight { return ">>"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTStaticField.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTStaticField.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTStaticField.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTStaticField.java Sun Oct 9 13:17:55 2011 @@ -218,4 +218,9 @@ public class ASTStaticField return className + "." + fieldName; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTStaticMethod.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTStaticMethod.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTStaticMethod.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTStaticMethod.java Sun Oct 9 13:17:55 2011 @@ -263,4 +263,9 @@ public class ASTStaticMethod { return toGetSourceString( context, target ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSubtract.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSubtract.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSubtract.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTSubtract.java Sun Oct 9 13:17:55 2011 @@ -48,4 +48,9 @@ class ASTSubtract { return "-"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTTest.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTTest.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTTest.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTTest.java Sun Oct 9 13:17:55 2011 @@ -133,4 +133,9 @@ class ASTTest throw OgnlOps.castToRuntime( t ); } } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTThisVarRef.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTThisVarRef.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTThisVarRef.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTThisVarRef.java Sun Oct 9 13:17:55 2011 @@ -65,4 +65,9 @@ public class ASTThisVarRef { throw new UnsupportedCompilationException( "Unable to compile this references." ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTUnsignedShiftRight.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTUnsignedShiftRight.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTUnsignedShiftRight.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTUnsignedShiftRight.java Sun Oct 9 13:17:55 2011 @@ -84,4 +84,9 @@ class ASTUnsignedShiftRight return result; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTVarRef.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTVarRef.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTVarRef.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTVarRef.java Sun Oct 9 13:17:55 2011 @@ -133,4 +133,9 @@ public class ASTVarRef { return toGetSourceString( context, target ); } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTXor.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTXor.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTXor.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTXor.java Sun Oct 9 13:17:55 2011 @@ -54,4 +54,9 @@ class ASTXor { return "^"; } + + public <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data) + { + return visitor.visit(this, data); + } } Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Node.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Node.java?rev=1180607&r1=1180606&r2=1180607&view=diff ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Node.java (original) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Node.java Sun Oct 9 13:17:55 2011 @@ -91,4 +91,19 @@ public interface Node * @param accessor The compiled representation of this node. */ void setAccessor( ExpressionAccessor accessor ); + + + /** + * Supports the Visitor pattern. The method which corresponds to + * the runtime type of this Node will be called. + * @param visitor The visitor to accept. + * @param data The second parameter to pass through to visitor.visit + * @param <R> The return type of the visitor.visit method. + * @param <P> The type of the second parameter type. + * @return the value returned by visitor.visit + * @throws NullPointerException if visitor is null + * @throws RuntimeException if visitor.visit throws an exception. + */ + <R,P> R accept(NodeVisitor<? extends R, ? super P> visitor, P data); + } Added: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java?rev=1180607&view=auto ============================================================================== --- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java (added) +++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java Sun Oct 9 13:17:55 2011 @@ -0,0 +1,71 @@ +/* + * $Id: $ + * + * 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 org.apache.commons.ognl; + +public interface NodeVisitor<R, P> +{ + public R visit(ASTSequence node, P data); + public R visit(ASTAssign node, P data); + public R visit(ASTTest node, P data); + public R visit(ASTOr node, P data); + public R visit(ASTAnd node, P data); + public R visit(ASTBitOr node, P data); + public R visit(ASTXor node, P data); + public R visit(ASTBitAnd node, P data); + public R visit(ASTEq node, P data); + public R visit(ASTNotEq node, P data); + public R visit(ASTLess node, P data); + public R visit(ASTGreater node, P data); + public R visit(ASTLessEq node, P data); + public R visit(ASTGreaterEq node, P data); + public R visit(ASTIn node, P data); + public R visit(ASTNotIn node, P data); + public R visit(ASTShiftLeft node, P data); + public R visit(ASTShiftRight node, P data); + public R visit(ASTUnsignedShiftRight node, P data); + public R visit(ASTAdd node, P data); + public R visit(ASTSubtract node, P data); + public R visit(ASTMultiply node, P data); + public R visit(ASTDivide node, P data); + public R visit(ASTRemainder node, P data); + public R visit(ASTNegate node, P data); + public R visit(ASTBitNegate node, P data); + public R visit(ASTNot node, P data); + public R visit(ASTInstanceof node, P data); + public R visit(ASTChain node, P data); + public R visit(ASTEval node, P data); + public R visit(ASTConst node, P data); + public R visit(ASTThisVarRef node, P data); + public R visit(ASTRootVarRef node, P data); + public R visit(ASTVarRef node, P data); + public R visit(ASTList node, P data); + public R visit(ASTMap node, P data); + public R visit(ASTKeyValue node, P data); + public R visit(ASTStaticField node, P data); + public R visit(ASTCtor node, P data); + public R visit(ASTProperty node, P data); + public R visit(ASTStaticMethod node, P data); + public R visit(ASTMethod node, P data); + public R visit(ASTProject node, P data); + public R visit(ASTSelect node, P data); + public R visit(ASTSelectFirst node, P data); + public R visit(ASTSelectLast node, P data); +} Propchange: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java ------------------------------------------------------------------------------ svn:eol-style = native