You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2014/02/13 18:18:00 UTC

[10/10] git commit: Removed paintable pool.

Removed paintable pool.


Project: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/commit/b98e1652
Tree: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/tree/b98e1652
Diff: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/diff/b98e1652

Branch: refs/heads/prestonc/benchmarks
Commit: b98e16529a64b727e42366f00212240e84dca2f4
Parents: f082dd4
Author: Preston Carman <pr...@apache.org>
Authored: Thu Feb 13 09:17:32 2014 -0800
Committer: Preston Carman <pr...@apache.org>
Committed: Thu Feb 13 09:17:32 2014 -0800

----------------------------------------------------------------------
 .../bool/FnBooleanScalarEvaluator.java          | 91 ++++++++++----------
 1 file changed, 47 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/b98e1652/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluator.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluator.java
index e2fd431..a666864 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluator.java
@@ -36,22 +36,31 @@ import edu.uci.ics.hyracks.data.std.primitive.ShortPointable;
 import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
 
 public class FnBooleanScalarEvaluator extends AbstractTaggedValueArgumentScalarEvaluator {
+    final BytePointable bp = (BytePointable) BytePointable.FACTORY.createPointable();
+    final XSDecimalPointable decp = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
+    final DoublePointable dp = (DoublePointable) DoublePointable.FACTORY.createPointable();
+    final FloatPointable fp = (FloatPointable) FloatPointable.FACTORY.createPointable();
+    final IntegerPointable ip = (IntegerPointable) IntegerPointable.FACTORY.createPointable();
+    final LongPointable lp = (LongPointable) LongPointable.FACTORY.createPointable();
+    final SequencePointable seqp = new SequencePointable();
+    final ShortPointable sp = (ShortPointable) ShortPointable.FACTORY.createPointable();
+    final UTF8StringPointable utf8p = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
+
     public FnBooleanScalarEvaluator(IScalarEvaluator[] args) {
         super(args);
     }
 
     protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
         TaggedValuePointable tvp = args[0];
-        boolean booleanResult = true;
         switch (tvp.getTag()) {
             case ValueTag.SEQUENCE_TAG: {
-                SequencePointable seqp = ppool.takeOne(SequencePointable.class);
                 tvp.getValue(seqp);
                 if (seqp.getEntryCount() == 0) {
-                    booleanResult = false;
+                    XDMConstants.setFalse(result);
+                    return;
                 }
-                ppool.giveBack(seqp);
-                break;
+                XDMConstants.setTrue(result);
+                return;
             }
 
             case ValueTag.XS_BOOLEAN_TAG: {
@@ -60,13 +69,13 @@ public class FnBooleanScalarEvaluator extends AbstractTaggedValueArgumentScalarE
             }
 
             case ValueTag.XS_DECIMAL_TAG: {
-                XSDecimalPointable decp = ppool.takeOne(XSDecimalPointable.class);
                 tvp.getValue(decp);
                 if (decp.longValue() == 0) {
-                    booleanResult = false;
+                    XDMConstants.setFalse(result);
+                    return;
                 }
-                ppool.giveBack(decp);
-                break;
+                XDMConstants.setTrue(result);
+                return;
             }
 
             case ValueTag.XS_INTEGER_TAG:
@@ -77,84 +86,78 @@ public class FnBooleanScalarEvaluator extends AbstractTaggedValueArgumentScalarE
             case ValueTag.XS_POSITIVE_INTEGER_TAG:
             case ValueTag.XS_UNSIGNED_INT_TAG:
             case ValueTag.XS_UNSIGNED_LONG_TAG: {
-                LongPointable lp = ppool.takeOne(LongPointable.class);
                 tvp.getValue(lp);
                 if (lp.longValue() == 0) {
-                    booleanResult = false;
+                    XDMConstants.setFalse(result);
+                    return;
                 }
-                ppool.giveBack(lp);
-                break;
+                XDMConstants.setTrue(result);
+                return;
             }
 
             case ValueTag.XS_INT_TAG:
             case ValueTag.XS_UNSIGNED_SHORT_TAG: {
-                IntegerPointable ip = ppool.takeOne(IntegerPointable.class);
                 tvp.getValue(ip);
                 if (ip.intValue() == 0) {
-                    booleanResult = false;
+                    XDMConstants.setFalse(result);
+                    return;
                 }
-                ppool.giveBack(ip);
-                break;
+                XDMConstants.setTrue(result);
+                return;
             }
 
             case ValueTag.XS_SHORT_TAG:
             case ValueTag.XS_UNSIGNED_BYTE_TAG: {
-                ShortPointable sp = ppool.takeOne(ShortPointable.class);
                 tvp.getValue(sp);
                 if (sp.shortValue() == 0) {
-                    booleanResult = false;
+                    XDMConstants.setFalse(result);
+                    return;
                 }
-                ppool.giveBack(sp);
-                break;
+                XDMConstants.setTrue(result);
+                return;
             }
 
             case ValueTag.XS_BYTE_TAG: {
-                BytePointable bp = ppool.takeOne(BytePointable.class);
                 tvp.getValue(bp);
                 if (bp.byteValue() == 0) {
-                    booleanResult = false;
+                    XDMConstants.setFalse(result);
+                    return;
                 }
-                ppool.giveBack(bp);
-                break;
+                XDMConstants.setTrue(result);
+                return;
             }
 
             case ValueTag.XS_DOUBLE_TAG: {
-                DoublePointable dp = ppool.takeOne(DoublePointable.class);
                 tvp.getValue(dp);
                 if (dp.doubleValue() == 0 || Double.isNaN(dp.doubleValue())) {
-                    booleanResult = false;
+                    XDMConstants.setFalse(result);
+                    return;
                 }
-                ppool.giveBack(dp);
-                break;
+                XDMConstants.setTrue(result);
+                return;
             }
 
             case ValueTag.XS_FLOAT_TAG: {
-                FloatPointable fp = ppool.takeOne(FloatPointable.class);
                 tvp.getValue(fp);
                 if (fp.floatValue() == 0 || Float.isNaN(fp.floatValue())) {
-                    booleanResult = false;
+                    XDMConstants.setFalse(result);
+                    return;
                 }
-                ppool.giveBack(fp);
-                break;
+                XDMConstants.setTrue(result);
+                return;
             }
 
             case ValueTag.XS_ANY_URI_TAG:
             case ValueTag.XS_STRING_TAG: {
-                UTF8StringPointable utf8p = ppool.takeOne(UTF8StringPointable.class);
                 tvp.getValue(utf8p);
                 if (utf8p.getUTFLength() == 0) {
-                    booleanResult = false;
+                    XDMConstants.setFalse(result);
+                    return;
                 }
-                ppool.giveBack(utf8p);
-                break;
+                XDMConstants.setTrue(result);
+                return;
             }
-            default:
-                throw new SystemException(ErrorCode.FORG0006);
-        }
-        if (booleanResult) {
-            XDMConstants.setTrue(result);
-        } else {
-            XDMConstants.setFalse(result);
         }
+        throw new SystemException(ErrorCode.FORG0006);
     }
 }
\ No newline at end of file