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