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/16 01:50:45 UTC

svn commit: r1373674 - /incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/

Author: prestonc
Date: Wed Aug 15 23:50:44 2012
New Revision: 1373674

URL: http://svn.apache.org/viewvc?rev=1373674&view=rev
Log:
VXQUERY-55 and VXQUERY-50 Added the derived types and fixed a few calls to the array backed value store.

Added:
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsByteOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsLongOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNegativeIntegerOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNonNegativeIntegerOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNonPositiveIntegerOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsPositiveIntegerOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsShortOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedByteOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedIntOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedLongOperation.java   (with props)
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedShortOperation.java   (with props)
Modified:
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBase64BinaryOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDTDurationOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateTimeOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDecimalOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDoubleOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDurationOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsFloatOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGDayOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthDayOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearMonthOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsHexBinaryOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntegerOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsTimeOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsYMDurationOperation.java

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBase64BinaryOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsBase64BinaryOperation.java Wed Aug 15 23:50:44 2012
@@ -31,6 +31,7 @@ public class CastableAsBase64BinaryOpera
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToBase64BinaryOperation castTo = new CastToBase64BinaryOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsByteOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsByteOperation.java?rev=1373674&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsByteOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsByteOperation.java Wed Aug 15 23:50:44 2012
@@ -0,0 +1,96 @@
+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.CastToByteOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.BooleanPointable;
+import edu.uci.ics.hyracks.data.std.primitive.BytePointable;
+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 CastableAsByteOperation 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 {
+            abvsInner.reset();
+            CastToByteOperation castTo = new CastToByteOperation();
+            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 {
+            abvsInner.reset();
+            CastToByteOperation castTo = new CastToByteOperation();
+            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 {
+            abvsInner.reset();
+            CastToByteOperation castTo = new CastToByteOperation();
+            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);
+    }
+
+    /**
+     * Derived Datatypes
+     */
+    public void convertByte(BytePointable bytep, 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/CastableAsByteOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDTDurationOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDTDurationOperation.java Wed Aug 15 23:50:44 2012
@@ -32,6 +32,7 @@ public class CastableAsDTDurationOperati
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToDTDurationOperation castTo = new CastToDTDurationOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateOperation.java Wed Aug 15 23:50:44 2012
@@ -32,6 +32,7 @@ public class CastableAsDateOperation ext
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToDateOperation castTo = new CastToDateOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateTimeOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDateTimeOperation.java Wed Aug 15 23:50:44 2012
@@ -32,6 +32,7 @@ public class CastableAsDateTimeOperation
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToDateTimeOperation castTo = new CastToDateTimeOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDecimalOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDecimalOperation.java Wed Aug 15 23:50:44 2012
@@ -35,6 +35,7 @@ public class CastableAsDecimalOperation 
     public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToDecimalOperation castTo = new CastToDecimalOperation();
             castTo.convertDouble(doublep, dOutInner);
         } catch (Exception e) {
@@ -48,6 +49,7 @@ public class CastableAsDecimalOperation 
     public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToDecimalOperation castTo = new CastToDecimalOperation();
             castTo.convertFloat(floatp, dOutInner);
         } catch (Exception e) {
@@ -67,6 +69,7 @@ public class CastableAsDecimalOperation 
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToDecimalOperation castTo = new CastToDecimalOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDoubleOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDoubleOperation.java Wed Aug 15 23:50:44 2012
@@ -9,9 +9,12 @@ import org.apache.vxquery.exceptions.Sys
 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.BytePointable;
 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.ShortPointable;
 import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
 import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
 
@@ -53,6 +56,7 @@ public class CastableAsDoubleOperation e
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToDoubleOperation castTo = new CastToDoubleOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {
@@ -67,4 +71,66 @@ public class CastableAsDoubleOperation e
         convertString(stringp, dOut);
     }
 
+    /**
+     * Derived Datatypes
+     */
+    public void convertByte(BytePointable bytep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertInt(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertLong(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertNegativeInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertNonNegativeInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertNonPositiveInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertPositiveInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertShort(ShortPointable shortp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedByte(BytePointable bytep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedInt(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedLong(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedShort(ShortPointable shortp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
 }
\ No newline at end of file

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDurationOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsDurationOperation.java Wed Aug 15 23:50:44 2012
@@ -32,6 +32,7 @@ public class CastableAsDurationOperation
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToDurationOperation castTo = new CastToDurationOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsFloatOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsFloatOperation.java Wed Aug 15 23:50:44 2012
@@ -9,9 +9,12 @@ import org.apache.vxquery.exceptions.Sys
 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.BytePointable;
 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.ShortPointable;
 import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
 import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
 
@@ -53,6 +56,7 @@ public class CastableAsFloatOperation ex
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToFloatOperation castTo = new CastToFloatOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {
@@ -67,4 +71,66 @@ public class CastableAsFloatOperation ex
         convertString(stringp, dOut);
     }
 
+    /**
+     * Derived Datatypes
+     */
+    public void convertByte(BytePointable bytep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertInt(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertLong(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertNegativeInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertNonNegativeInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertNonPositiveInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertPositiveInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertShort(ShortPointable shortp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedByte(BytePointable bytep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedInt(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedLong(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedShort(ShortPointable shortp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
 }
\ No newline at end of file

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGDayOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGDayOperation.java Wed Aug 15 23:50:44 2012
@@ -38,6 +38,7 @@ public class CastableAsGDayOperation ext
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToGDayOperation castTo = new CastToGDayOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthDayOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthDayOperation.java Wed Aug 15 23:50:44 2012
@@ -38,6 +38,7 @@ public class CastableAsGMonthDayOperatio
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToGMonthDayOperation castTo = new CastToGMonthDayOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGMonthOperation.java Wed Aug 15 23:50:44 2012
@@ -38,6 +38,7 @@ public class CastableAsGMonthOperation e
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToGMonthOperation castTo = new CastToGMonthOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearMonthOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearMonthOperation.java Wed Aug 15 23:50:44 2012
@@ -38,6 +38,7 @@ public class CastableAsGYearMonthOperati
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToGYearMonthOperation castTo = new CastToGYearMonthOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsGYearOperation.java Wed Aug 15 23:50:44 2012
@@ -38,6 +38,7 @@ public class CastableAsGYearOperation ex
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToGYearOperation castTo = new CastToGYearOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsHexBinaryOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsHexBinaryOperation.java Wed Aug 15 23:50:44 2012
@@ -31,6 +31,7 @@ public class CastableAsHexBinaryOperatio
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToHexBinaryOperation castTo = new CastToHexBinaryOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntOperation.java?rev=1373674&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntOperation.java Wed Aug 15 23:50:44 2012
@@ -0,0 +1,117 @@
+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.CastToIntOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.BooleanPointable;
+import edu.uci.ics.hyracks.data.std.primitive.BytePointable;
+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.ShortPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsIntOperation 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 {
+            abvsInner.reset();
+            CastToIntOperation castTo = new CastToIntOperation();
+            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 {
+            abvsInner.reset();
+            CastToIntOperation castTo = new CastToIntOperation();
+            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 {
+            abvsInner.reset();
+            CastToIntOperation castTo = new CastToIntOperation();
+            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);
+    }
+
+    /**
+     * Derived Datatypes
+     */
+    public void convertByte(BytePointable bytep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertInt(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertShort(ShortPointable shortp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedByte(BytePointable bytep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedShort(ShortPointable shortp, 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/CastableAsIntOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntegerOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsIntegerOperation.java Wed Aug 15 23:50:44 2012
@@ -9,9 +9,12 @@ import org.apache.vxquery.exceptions.Sys
 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.BytePointable;
 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.ShortPointable;
 import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
 import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
 
@@ -35,6 +38,7 @@ public class CastableAsIntegerOperation 
     public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToIntegerOperation castTo = new CastToIntegerOperation();
             castTo.convertDouble(doublep, dOutInner);
         } catch (Exception e) {
@@ -48,6 +52,7 @@ public class CastableAsIntegerOperation 
     public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToIntegerOperation castTo = new CastToIntegerOperation();
             castTo.convertFloat(floatp, dOutInner);
         } catch (Exception e) {
@@ -67,6 +72,7 @@ public class CastableAsIntegerOperation 
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToIntegerOperation castTo = new CastToIntegerOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {
@@ -81,4 +87,66 @@ public class CastableAsIntegerOperation 
         convertString(stringp, dOut);
     }
 
+    /**
+     * Derived Datatypes
+     */
+    public void convertByte(BytePointable bytep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertInt(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertLong(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertNegativeInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertNonNegativeInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertNonPositiveInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertPositiveInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertShort(ShortPointable shortp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedByte(BytePointable bytep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedInt(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedLong(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedShort(ShortPointable shortp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
 }
\ No newline at end of file

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsLongOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsLongOperation.java?rev=1373674&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsLongOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsLongOperation.java Wed Aug 15 23:50:44 2012
@@ -0,0 +1,6 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+
+public class CastableAsLongOperation extends CastableAsIntegerOperation {
+
+}
\ No newline at end of file

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

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNegativeIntegerOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNegativeIntegerOperation.java?rev=1373674&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNegativeIntegerOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNegativeIntegerOperation.java Wed Aug 15 23:50:44 2012
@@ -0,0 +1,6 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+
+public class CastableAsNegativeIntegerOperation extends CastableAsIntegerOperation {
+
+}
\ No newline at end of file

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

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNonNegativeIntegerOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNonNegativeIntegerOperation.java?rev=1373674&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNonNegativeIntegerOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNonNegativeIntegerOperation.java Wed Aug 15 23:50:44 2012
@@ -0,0 +1,6 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+
+public class CastableAsNonNegativeIntegerOperation extends CastableAsIntegerOperation {
+
+}
\ No newline at end of file

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

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNonPositiveIntegerOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNonPositiveIntegerOperation.java?rev=1373674&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNonPositiveIntegerOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsNonPositiveIntegerOperation.java Wed Aug 15 23:50:44 2012
@@ -0,0 +1,6 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+
+public class CastableAsNonPositiveIntegerOperation extends CastableAsIntegerOperation {
+
+}
\ No newline at end of file

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

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsPositiveIntegerOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsPositiveIntegerOperation.java?rev=1373674&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsPositiveIntegerOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsPositiveIntegerOperation.java Wed Aug 15 23:50:44 2012
@@ -0,0 +1,6 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+
+public class CastableAsPositiveIntegerOperation extends CastableAsIntegerOperation {
+
+}
\ No newline at end of file

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

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsShortOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsShortOperation.java?rev=1373674&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsShortOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsShortOperation.java Wed Aug 15 23:50:44 2012
@@ -0,0 +1,106 @@
+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.CastToShortOperation;
+
+import edu.uci.ics.hyracks.data.std.primitive.BooleanPointable;
+import edu.uci.ics.hyracks.data.std.primitive.BytePointable;
+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.ShortPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class CastableAsShortOperation 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 {
+            abvsInner.reset();
+            CastToShortOperation castTo = new CastToShortOperation();
+            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 {
+            abvsInner.reset();
+            CastToShortOperation castTo = new CastToShortOperation();
+            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 {
+            abvsInner.reset();
+            CastToShortOperation castTo = new CastToShortOperation();
+            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);
+    }
+
+    /**
+     * Derived Datatypes
+     */
+    public void convertByte(BytePointable bytep, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertShort(ShortPointable shortp, DataOutput dOut) throws SystemException, IOException {
+        dOut.write(ValueTag.XS_BOOLEAN_TAG);
+        dOut.write((byte) 1);
+    }
+
+    public void convertUnsignedByte(BytePointable bytep, 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/CastableAsShortOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 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=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsTimeOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsTimeOperation.java Wed Aug 15 23:50:44 2012
@@ -26,6 +26,7 @@ public class CastableAsTimeOperation ext
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToTimeOperation castTo = new CastToTimeOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedByteOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedByteOperation.java?rev=1373674&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedByteOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedByteOperation.java Wed Aug 15 23:50:44 2012
@@ -0,0 +1,6 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+
+public class CastableAsUnsignedByteOperation extends CastableAsShortOperation {
+
+}
\ No newline at end of file

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

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedIntOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedIntOperation.java?rev=1373674&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedIntOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedIntOperation.java Wed Aug 15 23:50:44 2012
@@ -0,0 +1,6 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+
+public class CastableAsUnsignedIntOperation extends CastableAsIntegerOperation {
+
+}
\ No newline at end of file

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

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedLongOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedLongOperation.java?rev=1373674&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedLongOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedLongOperation.java Wed Aug 15 23:50:44 2012
@@ -0,0 +1,6 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+
+public class CastableAsUnsignedLongOperation extends CastableAsIntegerOperation {
+
+}
\ No newline at end of file

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

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedShortOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedShortOperation.java?rev=1373674&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedShortOperation.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsUnsignedShortOperation.java Wed Aug 15 23:50:44 2012
@@ -0,0 +1,6 @@
+package org.apache.vxquery.runtime.functions.castable;
+
+
+public class CastableAsUnsignedShortOperation extends CastableAsIntOperation {
+
+}
\ No newline at end of file

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

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsYMDurationOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsYMDurationOperation.java?rev=1373674&r1=1373673&r2=1373674&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsYMDurationOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableAsYMDurationOperation.java Wed Aug 15 23:50:44 2012
@@ -32,6 +32,7 @@ public class CastableAsYMDurationOperati
     public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
         boolean castable = true;
         try {
+            abvsInner.reset();
             CastToYMDurationOperation castTo = new CastToYMDurationOperation();
             castTo.convertString(stringp, dOutInner);
         } catch (Exception e) {