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 2012/08/07 22:47:51 UTC

svn commit: r1370514 [1/2] - in /incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery: functions/ runtime/functions/castable/

Author: prestonc
Date: Tue Aug  7 20:47:50 2012
New Revision: 1370514

URL: http://svn.apache.org/viewvc?rev=1370514&view=rev
Log:
VXQUERY-50 Added the castable operation. A few cast functions needed to be updated to improve the "maybe" cast result.

Added:
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/AbstractCastableAsOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsAnyURIOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBase64BinaryOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBooleanOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDTDurationOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateTimeOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDecimalOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDoubleOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDurationOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsFloatOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGDayOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthDayOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearMonthOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsHexBinaryOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntegerOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNotationOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsQNameOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsStringOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsTimeOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUntypedAtomicOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsYMDurationOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableScalarEvaluatorFactory.java   (with props)
Modified:
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml?rev=1370514&r1=1370513&r2=1370514&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml Tue Aug  7 20:47:50 2012
@@ -874,6 +874,7 @@
         <param name="arg" type="item()*"/>
         <param name="type" type="xs:int"/>
         <return type="xs:boolean"/>
+        <runtime type="scalar" class="org.apache.vxquery.runtime.functions.castable.CastableScalarEvaluatorFactory"/>
     </operator>
 
     <!-- opext:instance-of($arg as item()*, $type as xsext:type) as xs:boolean -->

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/AbstractCastableAsOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/AbstractCastableAsOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/AbstractCastableAsOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/AbstractCastableAsOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,138 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSBinaryPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSQNamePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSTimePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+
+import edu.uci.ics.hyracks.data.std.primitive.BooleanPointable;
+import edu.uci.ics.hyracks.data.std.primitive.DoublePointable;
+import edu.uci.ics.hyracks.data.std.primitive.FloatPointable;
+import edu.uci.ics.hyracks.data.std.primitive.IntegerPointable;
+import edu.uci.ics.hyracks.data.std.primitive.LongPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+
+public abstract class AbstractCastableAsOperation {
+    public void convertAnyURI(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertBase64Binary(XSBinaryPointable binaryp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertBoolean(BooleanPointable boolp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertDate(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertDatetime(XSDateTimePointable datetimep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertDecimal(XSDecimalPointable decp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertDTDuration(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertDuration(XSDurationPointable durationp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertGDay(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertGMonth(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertGMonthDay(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertGYear(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertGYearMonth(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertHexBinary(XSBinaryPointable binaryp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertNotation(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertQName(XSQNamePointable qnamep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertTime(XSTimePointable timep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+
+    public void convertYMDuration(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 0);
+    }
+}

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/AbstractCastableAsOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsAnyURIOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsAnyURIOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsAnyURIOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsAnyURIOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,30 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+
+public class CastableAsAnyURIOperation extends AbstractCastableAsOperation {
+
+    @Override
+    public void convertAnyURI(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsAnyURIOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBase64BinaryOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBase64BinaryOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBase64BinaryOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBase64BinaryOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,47 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSBinaryPointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToBase64BinaryOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsBase64BinaryOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertBase64Binary(XSBinaryPointable binaryp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertHexBinary(XSBinaryPointable binaryp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToBase64BinaryOperation castTo = new CastToBase64BinaryOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBase64BinaryOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBooleanOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBooleanOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBooleanOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBooleanOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,69 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToBooleanOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.BooleanPointable;
+import edu.uci.ics.hyracks.data.std.primitive.DoublePointable;
+import edu.uci.ics.hyracks.data.std.primitive.FloatPointable;
+import edu.uci.ics.hyracks.data.std.primitive.LongPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsBooleanOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertBoolean(BooleanPointable boolp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDecimal(XSDecimalPointable decp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToBooleanOperation castTo = new CastToBooleanOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBooleanOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDTDurationOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDTDurationOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDTDurationOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDTDurationOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToDTDurationOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.IntegerPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsDTDurationOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertDTDuration(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDuration(XSDurationPointable durationp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToDTDurationOperation castTo = new CastToDTDurationOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertYMDuration(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDTDurationOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,48 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToDateOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsDateOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertDate(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDatetime(XSDateTimePointable datetimep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToDateOperation castTo = new CastToDateOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateTimeOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateTimeOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateTimeOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateTimeOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,49 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToDateTimeOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsDateTimeOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertDate(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDatetime(XSDateTimePointable datetimep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToDateTimeOperation castTo = new CastToDateTimeOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateTimeOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDecimalOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDecimalOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDecimalOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDecimalOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,84 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToDecimalOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.BooleanPointable;
+import edu.uci.ics.hyracks.data.std.primitive.DoublePointable;
+import edu.uci.ics.hyracks.data.std.primitive.FloatPointable;
+import edu.uci.ics.hyracks.data.std.primitive.LongPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsDecimalOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertBoolean(BooleanPointable boolp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDecimal(XSDecimalPointable decp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToDecimalOperation castTo = new CastToDecimalOperation();
+            castTo.convertDouble(doublep, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToDecimalOperation castTo = new CastToDecimalOperation();
+            castTo.convertFloat(floatp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToDecimalOperation castTo = new CastToDecimalOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDecimalOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDoubleOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDoubleOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDoubleOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDoubleOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,70 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToDoubleOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.BooleanPointable;
+import edu.uci.ics.hyracks.data.std.primitive.DoublePointable;
+import edu.uci.ics.hyracks.data.std.primitive.FloatPointable;
+import edu.uci.ics.hyracks.data.std.primitive.LongPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsDoubleOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertBoolean(BooleanPointable boolp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDecimal(XSDecimalPointable decp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToDoubleOperation castTo = new CastToDoubleOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDoubleOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDurationOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDurationOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDurationOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDurationOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToDurationOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.IntegerPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsDurationOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertDTDuration(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDuration(XSDurationPointable durationp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToDurationOperation castTo = new CastToDurationOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertYMDuration(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDurationOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsFloatOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsFloatOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsFloatOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsFloatOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,70 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToFloatOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.BooleanPointable;
+import edu.uci.ics.hyracks.data.std.primitive.DoublePointable;
+import edu.uci.ics.hyracks.data.std.primitive.FloatPointable;
+import edu.uci.ics.hyracks.data.std.primitive.LongPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsFloatOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertBoolean(BooleanPointable boolp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDecimal(XSDecimalPointable decp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToFloatOperation castTo = new CastToFloatOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsFloatOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGDayOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGDayOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGDayOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGDayOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToGDayOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsGDayOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertDate(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDatetime(XSDateTimePointable datetimep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertGDay(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToGDayOperation castTo = new CastToGDayOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGDayOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthDayOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthDayOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthDayOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthDayOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToGMonthDayOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsGMonthDayOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertDate(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDatetime(XSDateTimePointable datetimep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertGMonthDay(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToGMonthDayOperation castTo = new CastToGMonthDayOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+}
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthDayOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToGMonthOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsGMonthOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertDate(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDatetime(XSDateTimePointable datetimep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertGMonth(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToGMonthOperation castTo = new CastToGMonthOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearMonthOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearMonthOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearMonthOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearMonthOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,56 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToGYearMonthOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsGYearMonthOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertDate(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDatetime(XSDateTimePointable datetimep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertGYearMonth(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToGYearMonthOperation castTo = new CastToGYearMonthOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearMonthOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToGYearOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsGYearOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertDate(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDatetime(XSDateTimePointable datetimep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertGYear(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToGYearOperation castTo = new CastToGYearOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsHexBinaryOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsHexBinaryOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsHexBinaryOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsHexBinaryOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,47 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSBinaryPointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToHexBinaryOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsHexBinaryOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertBase64Binary(XSBinaryPointable binaryp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertHexBinary(XSBinaryPointable binaryp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToHexBinaryOperation castTo = new CastToHexBinaryOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsHexBinaryOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntegerOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntegerOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntegerOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntegerOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,84 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToIntegerOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.BooleanPointable;
+import edu.uci.ics.hyracks.data.std.primitive.DoublePointable;
+import edu.uci.ics.hyracks.data.std.primitive.FloatPointable;
+import edu.uci.ics.hyracks.data.std.primitive.LongPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsIntegerOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertBoolean(BooleanPointable boolp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDecimal(XSDecimalPointable decp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToIntegerOperation castTo = new CastToIntegerOperation();
+            castTo.convertDouble(doublep, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToIntegerOperation castTo = new CastToIntegerOperation();
+            castTo.convertFloat(floatp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToIntegerOperation castTo = new CastToIntegerOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntegerOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNotationOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNotationOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNotationOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNotationOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,115 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSBinaryPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSQNamePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSTimePointable;
+import org.apache.vxquery.exceptions.ErrorCode;
+import org.apache.vxquery.exceptions.SystemException;
+
+import edu.uci.ics.hyracks.data.std.primitive.BooleanPointable;
+import edu.uci.ics.hyracks.data.std.primitive.DoublePointable;
+import edu.uci.ics.hyracks.data.std.primitive.FloatPointable;
+import edu.uci.ics.hyracks.data.std.primitive.IntegerPointable;
+import edu.uci.ics.hyracks.data.std.primitive.LongPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+
+public class CastableAsNotationOperation extends AbstractCastableAsOperation {
+    public void convertAnyURI(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertBase64Binary(XSBinaryPointable binaryp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertBoolean(BooleanPointable boolp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertDate(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertDatetime(XSDateTimePointable datetimep, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertDecimal(XSDecimalPointable decp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertDTDuration(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertDuration(XSDurationPointable durationp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertGDay(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertGMonth(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertGMonthDay(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertGYear(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertGYearMonth(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertHexBinary(XSBinaryPointable binaryp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertNotation(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertQName(XSQNamePointable qnamep, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertTime(XSTimePointable timep, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+
+    public void convertYMDuration(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        throw new SystemException(ErrorCode.XPTY0004);
+    }
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNotationOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsQNameOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsQNameOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsQNameOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsQNameOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,26 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSQNamePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+
+public class CastableAsQNameOperation extends AbstractCastableAsOperation {
+
+    @Override
+    public void convertQName(XSQNamePointable qnamep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsQNameOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsStringOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsStringOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsStringOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsStringOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,161 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSBinaryPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSQNamePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSTimePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+
+import edu.uci.ics.hyracks.data.std.primitive.BooleanPointable;
+import edu.uci.ics.hyracks.data.std.primitive.DoublePointable;
+import edu.uci.ics.hyracks.data.std.primitive.FloatPointable;
+import edu.uci.ics.hyracks.data.std.primitive.IntegerPointable;
+import edu.uci.ics.hyracks.data.std.primitive.LongPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+
+public class CastableAsStringOperation extends AbstractCastableAsOperation {
+
+    @Override
+    public void convertAnyURI(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertBase64Binary(XSBinaryPointable binaryp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertBoolean(BooleanPointable boolp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDate(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDatetime(XSDateTimePointable datetimep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDecimal(XSDecimalPointable decp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDTDuration(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertDuration(XSDurationPointable durationp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertGDay(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertGMonth(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertGMonthDay(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertGYear(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertGYearMonth(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertHexBinary(XSBinaryPointable binaryp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertNotation(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertQName(XSQNamePointable qnamep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertTime(XSTimePointable timep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+    @Override
+    public void convertYMDuration(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsStringOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsTimeOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsTimeOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsTimeOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsTimeOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,49 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSTimePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.cast.CastToTimeOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsTimeOperation extends AbstractCastableAsOperation {
+    private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private DataOutput dOutInner = abvsInner.getDataOutput();
+
+    @Override
+    public void convertDatetime(XSDateTimePointable datetimep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        boolean castable = true;
+        try {
+            CastToTimeOperation castTo = new CastToTimeOperation();
+            castTo.convertString(stringp, dOutInner);
+        } catch (Exception e) {
+            castable = false;
+        }
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) (castable ? 1 : 0));
+    }
+
+    @Override
+    public void convertTime(XSTimePointable timep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    @Override
+    public void convertUntypedAtomic(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+        convertString(stringp, dOut);
+    }
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsTimeOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUntypedAtomicOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUntypedAtomicOperation.java?rev=1370514&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUntypedAtomicOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUntypedAtomicOperation.java Tue Aug  7 20:47:50 2012
@@ -0,0 +1,5 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+
+public class CastableAsUntypedAtomicOperation extends CastableAsStringOperation {
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUntypedAtomicOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native