You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by Nathan Bubna <nb...@gmail.com> on 2012/04/26 15:22:38 UTC

Re: svn commit: r1330815 - in /velocity/engine/trunk/velocity-engine-core/src: main/parser/Parser.jjt test/java/org/apache/velocity/test/ExpressionAsMethodArgumentTestCase.java

Heh. Yeah, that did seem a bit small for a GSoC project. :)  By the
way, thanks for dealing with the backlog of patches too!!

On Thu, Apr 26, 2012 at 5:42 AM,  <cb...@apache.org> wrote:
> Author: cbrisson
> Date: Thu Apr 26 12:42:39 2012
> New Revision: 1330815
>
> URL: http://svn.apache.org/viewvc?rev=1330815&view=rev
> Log:
> Expressions as method arguments (VELOCITY-706)
>
> Added:
>    velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/ExpressionAsMethodArgumentTestCase.java
> Modified:
>    velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt
>
> Modified: velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt
> URL: http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt?rev=1330815&r1=1330814&r2=1330815&view=diff
> ==============================================================================
> --- velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt (original)
> +++ velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt Thu Apr 26 12:42:39 2012
> @@ -1011,7 +1011,7 @@ TOKEN :
>  }
>
>
> -<DIRECTIVE>
> +<DIRECTIVE,REFMOD2>
>  TOKEN :
>  {
>     <MINUS: "-">
> @@ -1711,7 +1711,7 @@ void Parameter() #void: {}
>  */
>  void Method() : {}
>  {
> -   Identifier() <LPAREN> [ Parameter() ( <COMMA> Parameter() )* ] <REFMOD2_RPAREN>
> +   Identifier() <LPAREN> [ Expression() ( <COMMA> Expression() )* ] <REFMOD2_RPAREN>
>  }
>
>
>
> Added: velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/ExpressionAsMethodArgumentTestCase.java
> URL: http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/ExpressionAsMethodArgumentTestCase.java?rev=1330815&view=auto
> ==============================================================================
> --- velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/ExpressionAsMethodArgumentTestCase.java (added)
> +++ velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/ExpressionAsMethodArgumentTestCase.java Thu Apr 26 12:42:39 2012
> @@ -0,0 +1,55 @@
> +package org.apache.velocity.test;
> +
> +/*
> + * 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.
> + */
> +
> +import org.apache.velocity.VelocityContext;
> +
> +/**
> + * This class tests passing expressions as method arguments
> + */
> +
> +public class ExpressionAsMethodArgumentTestCase extends BaseTestCase
> +{
> +    public ExpressionAsMethodArgumentTestCase(final String name)
> +    {
> +        super(name);
> +    }
> +
> +    protected void setUpContext(VelocityContext context)
> +    {
> +        context.put("tool",new MyAbsTool());
> +        context.put("foo",2);
> +        context.put("bar",-3);
> +    }
> +
> +    public void testExpressionAsMethod()
> +    {
> +        assertEvalEquals("6","$tool.abs( $foo * $bar )");
> +        assertEvalEquals("12","$tool.abs( $foo * $tool.abs( $foo * $bar ) )");
> +    }
> +
> +    public static class MyAbsTool
> +    {
> +        public int abs(int num)
> +        {
> +            return Math.abs(num);
> +        }
> +    }
> +}
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org


Re: svn commit: r1330815 - in /velocity/engine/trunk/velocity-engine-core/src: main/parser/Parser.jjt test/java/org/apache/velocity/test/ExpressionAsMethodArgumentTestCase.java

Posted by Claude Brisson <cl...@renegat.net>.
On Thu, 26 Apr 2012 06:22:38 -0700
Nathan Bubna <nb...@gmail.com> wrote:

> Heh. Yeah, that did seem a bit small for a GSoC project. :)

Dealing with Macro arguments may have given the student enough work -
it looks like rather complex... but I'm already happy with this one.

>  By the
> way, thanks for dealing with the backlog of patches too!!

You're welcome!


  Claude

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org