00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _ATDATETIMEORDERIVED_HPP
00021 #define _ATDATETIMEORDERIVED_HPP
00022
00023 #include <xercesc/util/XMLString.hpp>
00024 #include <xqilla/items/DateOrTimeType.hpp>
00025
00026 #include <xqilla/framework/XQillaExport.hpp>
00027 #include <xqilla/items/ATDecimalOrDerived.hpp>
00028 #include <xqilla/items/ATDurationOrDerived.hpp>
00029 #include <xqilla/items/Timezone.hpp>
00030
00031 class XQILLA_API ATDateTimeOrDerived : public DateOrTimeType
00032 {
00033 public:
00034 typedef RefCountPointer<const ATDateTimeOrDerived> Ptr;
00035
00036
00037
00038 virtual const XMLCh* getPrimitiveTypeName() const = 0;
00039
00040
00041 virtual const XMLCh* getTypeURI() const = 0;
00042
00043
00044 virtual const XMLCh* getTypeName() const = 0;
00045
00046
00047 virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00048
00049
00050
00051 virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00052
00055 virtual int compare(const ATDateTimeOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00056
00060 virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const = 0;
00061
00065 virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const = 0;
00066
00070 virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const = 0;
00071
00075 virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const = 0;
00076
00080 virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const = 0;
00081
00085 virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const = 0;
00086
00090 virtual const Timezone::Ptr &getTimezone() const = 0;
00091
00095 virtual bool hasTimezone() const = 0;
00096
00101 virtual ATDateTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
00102
00106 virtual ATDateTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const = 0;
00107
00111 virtual ATDateTimeOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0;
00112
00116 virtual ATDateTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0;
00117
00121 virtual ATDateTimeOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0;
00122
00126 virtual ATDateTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0;
00127
00132 virtual ATDurationOrDerived::Ptr subtractDateTimeAsDayTimeDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const = 0;
00133
00138 virtual ATDurationOrDerived::Ptr subtractDateTimeAsYearMonthDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const = 0;
00139
00140
00141 virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00142 };
00143
00144 #endif // _ATDATETIMEORDERIVED_HPP