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()