00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _ATDATETIMEORDERIVED_HPP
00023 #define _ATDATETIMEORDERIVED_HPP
00024
00025 #include <xercesc/util/XMLString.hpp>
00026 #include <xqilla/items/DateOrTimeType.hpp>
00027
00028 #include <xqilla/framework/XQillaExport.hpp>
00029 #include <xqilla/items/ATDecimalOrDerived.hpp>
00030 #include <xqilla/items/ATDurationOrDerived.hpp>
00031 #include <xqilla/items/Timezone.hpp>
00032
00033 class XQILLA_API ATDateTimeOrDerived : public DateOrTimeType
00034 {
00035 public:
00036 typedef RefCountPointer<const ATDateTimeOrDerived> Ptr;
00037
00038
00039
00040 virtual const XMLCh* getPrimitiveTypeName() const = 0;
00041
00042
00043 virtual const XMLCh* getTypeURI() const = 0;
00044
00045
00046 virtual const XMLCh* getTypeName() const = 0;
00047
00048
00049 virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00050
00051
00052
00053 virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00054
00057 virtual int compare(const ATDateTimeOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00058
00062 virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const = 0;
00063
00067 virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const = 0;
00068
00072 virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const = 0;
00073
00077 virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const = 0;
00078
00082 virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const = 0;
00083
00087 virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const = 0;
00088
00092 virtual const Timezone::Ptr &getTimezone() const = 0;
00093
00097 virtual bool hasTimezone() const = 0;
00098
00103 virtual ATDateTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
00104
00108 virtual ATDateTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const = 0;
00109
00113 virtual ATDateTimeOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0;
00114
00118 virtual ATDateTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0;
00119
00123 virtual ATDateTimeOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0;
00124
00128 virtual ATDateTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0;
00129
00134 virtual ATDurationOrDerived::Ptr subtractDateTimeAsDayTimeDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const = 0;
00135
00140 virtual ATDurationOrDerived::Ptr subtractDateTimeAsYearMonthDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const = 0;
00141
00142
00143 virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00144 };
00145
00146 #endif // _ATDATETIMEORDERIVED_HPP