You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by ti...@apache.org on 2014/03/14 23:09:31 UTC

[10/25] git commit: new structure to help with performance testings.

new structure to help with performance testings.


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

Branch: refs/heads/westmann/prettyprint
Commit: d146525e32b211bc224aea2a644b80e946ead28b
Parents: f9ec13b
Author: Preston Carman <pr...@apache.org>
Authored: Thu Feb 13 15:26:44 2014 -0800
Committer: Preston Carman <pr...@apache.org>
Committed: Thu Feb 13 15:26:44 2014 -0800

----------------------------------------------------------------------
 .../bool/FnBooleanScalarEvaluatorFactory.java   | 171 ++++++++++---------
 1 file changed, 89 insertions(+), 82 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/d146525e/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluatorFactory.java
index ebc8cdd..86104c8 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluatorFactory.java
@@ -49,6 +49,10 @@ public class FnBooleanScalarEvaluatorFactory extends AbstractTaggedValueArgument
     @Override
     protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
             throws AlgebricksException {
+        return new FnBooleanScalarEvaluator(args);
+    }
+
+    private class FnBooleanScalarEvaluator extends AbstractTaggedValueArgumentScalarEvaluator {
         final SequencePointable seqp = new SequencePointable();
         final LongPointable lp = (LongPointable) LongPointable.FACTORY.createPointable();
         final IntegerPointable ip = (IntegerPointable) IntegerPointable.FACTORY.createPointable();
@@ -58,107 +62,110 @@ public class FnBooleanScalarEvaluatorFactory extends AbstractTaggedValueArgument
         final DoublePointable dp = (DoublePointable) DoublePointable.FACTORY.createPointable();
         final FloatPointable fp = (FloatPointable) FloatPointable.FACTORY.createPointable();
         final UTF8StringPointable utf8p = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
-        return new AbstractTaggedValueArgumentScalarEvaluator(args) {
-            @Override
-            protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
-                TaggedValuePointable tvp = args[0];
-                boolean booleanResult = true;
-                switch (tvp.getTag()) {
-                    case ValueTag.SEQUENCE_TAG: {
-                        tvp.getValue(seqp);
-                        if (seqp.getEntryCount() == 0) {
-                            booleanResult = false;
-                        }
-                        break;
-                    }
 
-                    case ValueTag.XS_BOOLEAN_TAG: {
-                        result.set(tvp);
-                        return;
-                    }
+        public FnBooleanScalarEvaluator(IScalarEvaluator[] args) {
+            super(args);
+        }
 
-                    case ValueTag.XS_DECIMAL_TAG: {
-                        tvp.getValue(decp);
-                        if (decp.longValue() == 0) {
-                            booleanResult = false;
-                        }
-                        break;
+        @Override
+        protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+            TaggedValuePointable tvp = args[0];
+            boolean booleanResult = true;
+            switch (tvp.getTag()) {
+                case ValueTag.SEQUENCE_TAG: {
+                    tvp.getValue(seqp);
+                    if (seqp.getEntryCount() == 0) {
+                        booleanResult = false;
                     }
+                    break;
+                }
+
+                case ValueTag.XS_BOOLEAN_TAG: {
+                    result.set(tvp);
+                    return;
+                }
 
-                    case ValueTag.XS_INTEGER_TAG:
-                    case ValueTag.XS_LONG_TAG:
-                    case ValueTag.XS_NEGATIVE_INTEGER_TAG:
-                    case ValueTag.XS_NON_POSITIVE_INTEGER_TAG:
-                    case ValueTag.XS_NON_NEGATIVE_INTEGER_TAG:
-                    case ValueTag.XS_POSITIVE_INTEGER_TAG:
-                    case ValueTag.XS_UNSIGNED_INT_TAG:
-                    case ValueTag.XS_UNSIGNED_LONG_TAG: {
-                        tvp.getValue(lp);
-                        if (lp.longValue() == 0) {
-                            booleanResult = false;
-                        }
-                        break;
+                case ValueTag.XS_DECIMAL_TAG: {
+                    tvp.getValue(decp);
+                    if (decp.longValue() == 0) {
+                        booleanResult = false;
                     }
+                    break;
+                }
 
-                    case ValueTag.XS_INT_TAG:
-                    case ValueTag.XS_UNSIGNED_SHORT_TAG: {
-                        tvp.getValue(ip);
-                        if (ip.intValue() == 0) {
-                            booleanResult = false;
-                        }
-                        break;
+                case ValueTag.XS_INTEGER_TAG:
+                case ValueTag.XS_LONG_TAG:
+                case ValueTag.XS_NEGATIVE_INTEGER_TAG:
+                case ValueTag.XS_NON_POSITIVE_INTEGER_TAG:
+                case ValueTag.XS_NON_NEGATIVE_INTEGER_TAG:
+                case ValueTag.XS_POSITIVE_INTEGER_TAG:
+                case ValueTag.XS_UNSIGNED_INT_TAG:
+                case ValueTag.XS_UNSIGNED_LONG_TAG: {
+                    tvp.getValue(lp);
+                    if (lp.longValue() == 0) {
+                        booleanResult = false;
                     }
+                    break;
+                }
 
-                    case ValueTag.XS_SHORT_TAG:
-                    case ValueTag.XS_UNSIGNED_BYTE_TAG: {
-                        tvp.getValue(sp);
-                        if (sp.shortValue() == 0) {
-                            booleanResult = false;
-                        }
-                        break;
+                case ValueTag.XS_INT_TAG:
+                case ValueTag.XS_UNSIGNED_SHORT_TAG: {
+                    tvp.getValue(ip);
+                    if (ip.intValue() == 0) {
+                        booleanResult = false;
                     }
+                    break;
+                }
 
-                    case ValueTag.XS_BYTE_TAG: {
-                        tvp.getValue(bp);
-                        if (bp.byteValue() == 0) {
-                            booleanResult = false;
-                        }
-                        break;
+                case ValueTag.XS_SHORT_TAG:
+                case ValueTag.XS_UNSIGNED_BYTE_TAG: {
+                    tvp.getValue(sp);
+                    if (sp.shortValue() == 0) {
+                        booleanResult = false;
                     }
+                    break;
+                }
 
-                    case ValueTag.XS_DOUBLE_TAG: {
-                        tvp.getValue(dp);
-                        if (dp.doubleValue() == 0 || Double.isNaN(dp.doubleValue())) {
-                            booleanResult = false;
-                        }
-                        break;
+                case ValueTag.XS_BYTE_TAG: {
+                    tvp.getValue(bp);
+                    if (bp.byteValue() == 0) {
+                        booleanResult = false;
                     }
+                    break;
+                }
 
-                    case ValueTag.XS_FLOAT_TAG: {
-                        tvp.getValue(fp);
-                        if (fp.floatValue() == 0 || Float.isNaN(fp.floatValue())) {
-                            booleanResult = false;
-                        }
-                        break;
+                case ValueTag.XS_DOUBLE_TAG: {
+                    tvp.getValue(dp);
+                    if (dp.doubleValue() == 0 || Double.isNaN(dp.doubleValue())) {
+                        booleanResult = false;
                     }
+                    break;
+                }
 
-                    case ValueTag.XS_ANY_URI_TAG:
-                    case ValueTag.XS_STRING_TAG: {
-                        tvp.getValue(utf8p);
-                        if (utf8p.getUTFLength() == 0) {
-                            booleanResult = false;
-                        }
-                        break;
+                case ValueTag.XS_FLOAT_TAG: {
+                    tvp.getValue(fp);
+                    if (fp.floatValue() == 0 || Float.isNaN(fp.floatValue())) {
+                        booleanResult = false;
                     }
-                    default:
-                        throw new SystemException(ErrorCode.FORG0006);
+                    break;
                 }
-                if (booleanResult) {
-                    XDMConstants.setTrue(result);
-                } else {
-                    XDMConstants.setFalse(result);
+
+                case ValueTag.XS_ANY_URI_TAG:
+                case ValueTag.XS_STRING_TAG: {
+                    tvp.getValue(utf8p);
+                    if (utf8p.getUTFLength() == 0) {
+                        booleanResult = false;
+                    }
+                    break;
                 }
+                default:
+                    throw new SystemException(ErrorCode.FORG0006);
+            }
+            if (booleanResult) {
+                XDMConstants.setTrue(result);
+            } else {
+                XDMConstants.setFalse(result);
             }
-        };
+        }
     }
 }
\ No newline at end of file