org.exist.xquery.value
Class AbstractDateTimeValue

java.lang.Object
  extended byorg.exist.xquery.value.AtomicValue
      extended byorg.exist.xquery.value.ComputableValue
          extended byorg.exist.xquery.value.AbstractDateTimeValue
All Implemented Interfaces:
Item, Sequence
Direct Known Subclasses:
DateTimeValue, DateValue, TimeValue

public abstract class AbstractDateTimeValue
extends ComputableValue

Author:
wolf, Piotr Kaminski

Field Summary
protected  XMLGregorianCalendar calendar
           
static int DAY
           
static int HOUR
           
static int MILLISECOND
           
static int MINUTE
           
static int MONTH
           
static int SECOND
           
static int YEAR
           
 
Fields inherited from class org.exist.xquery.value.AtomicValue
EMPTY_VALUE
 
Fields inherited from interface org.exist.xquery.value.Sequence
EMPTY_SEQUENCE
 
Constructor Summary
protected AbstractDateTimeValue(XMLGregorianCalendar calendar)
          Create a new date time value based on the given calendar.
 
Method Summary
 AbstractDateTimeValue adjustedToTimezone(DayTimeDurationValue offset)
           
 int compareTo(java.text.Collator collator, AtomicValue other)
           
 boolean compareTo(java.text.Collator collator, int operator, AtomicValue other)
           
 int conversionPreference(java.lang.Class javaClass)
          Returns a preference indicator, indicating the preference of a value to be converted into the given Java class.
abstract  AtomicValue convertTo(int requiredType)
          Convert this item into an atomic value, whose type corresponds to the specified target type.
protected abstract  AbstractDateTimeValue createSameKind(XMLGregorianCalendar cal)
           
 ComputableValue div(ComputableValue other)
           
protected  XMLGregorianCalendar getCanonicalCalendar()
           
protected  XMLGregorianCalendar getImplicitCalendar()
          Return a calendar with the timezone field set, to be used for order comparison.
 int getPart(int part)
           
 java.lang.String getStringValue()
          Return the string value of this item (see the definition of string value in XPath).
protected  long getTimeInMillis()
           
 Sequence getTimezone()
           
protected  XMLGregorianCalendar getTrimmedCalendar()
           
protected abstract  QName getXMLSchemaType()
           
 AtomicValue max(java.text.Collator collator, AtomicValue other)
           
 AtomicValue min(java.text.Collator collator, AtomicValue other)
           
 ComputableValue mult(ComputableValue other)
           
 ComputableValue plus(ComputableValue other)
           
 java.lang.Object toJavaObject(java.lang.Class target)
          Convert the value into an instance of the specified Java class.
protected  void validateTimezone(DayTimeDurationValue offset)
           
 AbstractDateTimeValue withoutTimezone()
           
 
Methods inherited from class org.exist.xquery.value.ComputableValue
minus
 
Methods inherited from class org.exist.xquery.value.AtomicValue
add, addAll, atomize, clearContext, contains, copyTo, dump, effectiveBooleanValue, endsWith, getCardinality, getDocumentSet, getItemType, getLength, getType, isCached, isPersistentSet, itemAt, iterate, removeDuplicates, setIsCached, setSelfAsContext, startsWith, toNodeSet, toSAX, toSequence, toString, unorderedIterator
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

calendar

protected final XMLGregorianCalendar calendar

YEAR

public static final int YEAR
See Also:
Constant Field Values

MONTH

public static final int MONTH
See Also:
Constant Field Values

DAY

public static final int DAY
See Also:
Constant Field Values

HOUR

public static final int HOUR
See Also:
Constant Field Values

MINUTE

public static final int MINUTE
See Also:
Constant Field Values

SECOND

public static final int SECOND
See Also:
Constant Field Values

MILLISECOND

public static final int MILLISECOND
See Also:
Constant Field Values
Constructor Detail

AbstractDateTimeValue

protected AbstractDateTimeValue(XMLGregorianCalendar calendar)
Create a new date time value based on the given calendar. The calendar is not cloned, so it is the subclass's responsibility to make sure there are no external references to it that would allow for mutation.

Parameters:
calendar - the calendar to wrap into an XPath value
Method Detail

getImplicitCalendar

protected XMLGregorianCalendar getImplicitCalendar()
Return a calendar with the timezone field set, to be used for order comparison. If the original calendar did not specify a timezone, set the local timezone (unadjusted for daylight savings). The returned calendars will be totally ordered between themselves. We also set any missing fields to ensure that normalization doesn't discard important data! (This is probably a bug in the JAXP implementation, but the workaround doesn't hurt us, so it's faster to just fix it here.)

Returns:
the calendar represented by this object, with the timezone field filled in with an implicit value if necessary

getCanonicalCalendar

protected XMLGregorianCalendar getCanonicalCalendar()

getTrimmedCalendar

protected XMLGregorianCalendar getTrimmedCalendar()

createSameKind

protected abstract AbstractDateTimeValue createSameKind(XMLGregorianCalendar cal)
                                                 throws XPathException
Throws:
XPathException

getTimeInMillis

protected long getTimeInMillis()

getXMLSchemaType

protected abstract QName getXMLSchemaType()

getStringValue

public java.lang.String getStringValue()
                                throws XPathException
Description copied from interface: Item
Return the string value of this item (see the definition of string value in XPath).

Specified by:
getStringValue in interface Item
Specified by:
getStringValue in class ComputableValue
Throws:
XPathException

convertTo

public abstract AtomicValue convertTo(int requiredType)
                               throws XPathException
Description copied from interface: Item
Convert this item into an atomic value, whose type corresponds to the specified target type. requiredType should be one of the type constants defined in Type. An XPathException is thrown if the conversion is impossible.

Specified by:
convertTo in interface Item
Specified by:
convertTo in class ComputableValue
Throws:
XPathException

getPart

public int getPart(int part)

validateTimezone

protected void validateTimezone(DayTimeDurationValue offset)
                         throws XPathException
Throws:
XPathException

adjustedToTimezone

public AbstractDateTimeValue adjustedToTimezone(DayTimeDurationValue offset)
                                         throws XPathException
Throws:
XPathException

withoutTimezone

public AbstractDateTimeValue withoutTimezone()
                                      throws XPathException
Throws:
XPathException

getTimezone

public Sequence getTimezone()
                     throws XPathException
Throws:
XPathException

compareTo

public boolean compareTo(java.text.Collator collator,
                         int operator,
                         AtomicValue other)
                  throws XPathException
Specified by:
compareTo in class ComputableValue
Throws:
XPathException

compareTo

public int compareTo(java.text.Collator collator,
                     AtomicValue other)
              throws XPathException
Specified by:
compareTo in class ComputableValue
Throws:
XPathException

max

public AtomicValue max(java.text.Collator collator,
                       AtomicValue other)
                throws XPathException
Specified by:
max in class ComputableValue
Throws:
XPathException

min

public AtomicValue min(java.text.Collator collator,
                       AtomicValue other)
                throws XPathException
Specified by:
min in class ComputableValue
Throws:
XPathException

plus

public ComputableValue plus(ComputableValue other)
                     throws XPathException
Specified by:
plus in class ComputableValue
Throws:
XPathException

mult

public ComputableValue mult(ComputableValue other)
                     throws XPathException
Specified by:
mult in class ComputableValue
Throws:
XPathException

div

public ComputableValue div(ComputableValue other)
                    throws XPathException
Specified by:
div in class ComputableValue
Throws:
XPathException

conversionPreference

public int conversionPreference(java.lang.Class javaClass)
Description copied from interface: Sequence
Returns a preference indicator, indicating the preference of a value to be converted into the given Java class. Low numbers mean that the value can be easily converted into the given class.

Specified by:
conversionPreference in interface Item
Overrides:
conversionPreference in class AtomicValue

toJavaObject

public java.lang.Object toJavaObject(java.lang.Class target)
                              throws XPathException
Description copied from interface: Sequence
Convert the value into an instance of the specified Java class.

Specified by:
toJavaObject in interface Item
Overrides:
toJavaObject in class AtomicValue
Throws:
XPathException


<oXygen/> XML Editor provides support for editing and debugging XQuery expressions against the eXist XML Database.