Author: cbrisson
Date: Mon Feb 20 11:32:31 2017
New Revision: 1783744

URL: http://svn.apache.org/viewvc?rev=1783744&view=rev
Log:
[engine] literals should follow the same rules

Modified:
    
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java
    
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java
    
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java
    
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTObjectArray.java
    
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTStringLiteral.java
    
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/IfEmptyTestCase.java

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java?rev=1783744&r1=1783743&r2=1783744&view=diff
==============================================================================
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTFloatingPointLiteral.java
 Mon Feb 20 11:32:31 2017
@@ -110,5 +110,12 @@ public class ASTFloatingPointLiteral ext
         return value;
     }
 
+    /**
+     * @see 
org.apache.velocity.runtime.parser.node.SimpleNode#evaluate(org.apache.velocity.context.InternalContextAdapter)
+     */
+    public boolean evaluate( InternalContextAdapter context)
+    {
+        return !MathUtils.isZero(value);
+    }
 
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java?rev=1783744&r1=1783743&r2=1783744&view=diff
==============================================================================
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTIntegerLiteral.java
 Mon Feb 20 11:32:31 2017
@@ -106,4 +106,12 @@ public class ASTIntegerLiteral extends S
     {
         return value;
     }
+
+    /**
+     * @see 
org.apache.velocity.runtime.parser.node.SimpleNode#evaluate(org.apache.velocity.context.InternalContextAdapter)
+     */
+    public boolean evaluate( InternalContextAdapter context)
+    {
+        return !MathUtils.isZero(value);
+    }
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java?rev=1783744&r1=1783743&r2=1783744&view=diff
==============================================================================
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTMap.java
 Mon Feb 20 11:32:31 2017
@@ -97,4 +97,11 @@ public class ASTMap extends SimpleNode
        return obj;
     }
 
+    /**
+     * @see 
org.apache.velocity.runtime.parser.node.SimpleNode#evaluate(org.apache.velocity.context.InternalContextAdapter)
+     */
+    public boolean evaluate( InternalContextAdapter context)
+    {
+        return children != null && children.length > 0;
+    }
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTObjectArray.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTObjectArray.java?rev=1783744&r1=1783743&r2=1783744&view=diff
==============================================================================
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTObjectArray.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTObjectArray.java
 Mon Feb 20 11:32:31 2017
@@ -88,4 +88,11 @@ public class ASTObjectArray extends Simp
        return obj;
     }
 
+    /**
+     * @see 
org.apache.velocity.runtime.parser.node.SimpleNode#evaluate(org.apache.velocity.context.InternalContextAdapter)
+     */
+    public boolean evaluate( InternalContextAdapter context)
+    {
+        return children != null && children.length > 0;
+    }
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTStringLiteral.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTStringLiteral.java?rev=1783744&r1=1783743&r2=1783744&view=diff
==============================================================================
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTStringLiteral.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTStringLiteral.java
 Mon Feb 20 11:32:31 2017
@@ -341,4 +341,14 @@ public class ASTStringLiteral extends Si
 
         return image;
     }
+
+    /**
+     * @see 
org.apache.velocity.runtime.parser.node.SimpleNode#evaluate(org.apache.velocity.context.InternalContextAdapter)
+     */
+    public boolean evaluate( InternalContextAdapter context)
+    {
+        String str = (String)value(context);
+        return str != null && !str.isEmpty();
+    }
+
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/IfEmptyTestCase.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/IfEmptyTestCase.java?rev=1783744&r1=1783743&r2=1783744&view=diff
==============================================================================
--- 
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/IfEmptyTestCase.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/IfEmptyTestCase.java
 Mon Feb 20 11:32:31 2017
@@ -100,6 +100,23 @@ public class IfEmptyTestCase extends Bas
         assertNotEmpty(builder);
     }
 
+    public void testLiterals()
+    {
+        assertEvalEquals("", "#if( 0 )fail#end");
+        assertEvalEquals("", "#if( 0.0 )fail#end");
+        assertEvalEquals("", "#if( '' )fail#end");
+        assertEvalEquals("", "#if( \"\" )fail#end");
+        assertEvalEquals("", "#if( [] )fail#end");
+        assertEvalEquals("", "#if( {} )fail#end");
+
+        assertEvalEquals("", "#if( !1 )fail#end");
+        assertEvalEquals("", "#if( !1.0 )fail#end");
+        assertEvalEquals("", "#if( !'foo' )fail#end");
+        assertEvalEquals("", "#if( !\"foo\" )fail#end");
+        assertEvalEquals("", "#if( ![ 'foo' ] )fail#end");
+        assertEvalEquals("", "#if( !{ 'foo':'bar' } )fail#end");
+    }
+
     public static class NullAsString
     {
         public String getAsString()


Reply via email to