00001 /* 00002 * Copyright (c) 2001-2006 00003 * DecisionSoft Limited. All rights reserved. 00004 * Copyright (c) 2004-2006 00005 * Progress Software Corporation. All rights reserved. 00006 * Copyright (c) 2004-2006 00007 * Oracle. All rights reserved. 00008 * 00009 * See the file LICENSE for redistribution information. 00010 * 00011 * $Id: Timezone.hpp,v 1.12 2006/11/01 16:37:14 jpcs Exp $ 00012 */ 00013 00014 #ifndef _TZONE_HPP 00015 #define _TZONE_HPP 00016 00017 #include <xqilla/framework/XQillaExport.hpp> 00018 #include <xqilla/framework/ReferenceCounted.hpp> 00019 #include <xqilla/items/ATDurationOrDerived.hpp> 00020 #include <xqilla/mapm/m_apm.h> 00021 00022 #include <xercesc/util/XercesDefs.hpp> 00023 00024 class DynamicContext; 00025 00026 class XQILLA_API Timezone : public ReferenceCounted 00027 { 00028 public : 00029 typedef RefCountPointer<const Timezone> Ptr; 00030 00034 Timezone(const MAPM &seconds); 00035 00039 Timezone(const ATDurationOrDerived::Ptr &duration, const DynamicContext* context); 00040 00044 bool equals(const Timezone::Ptr &other) const; 00045 00046 ATDurationOrDerived::Ptr asDayTimeDuration(const DynamicContext* context) const; 00047 00052 const XMLCh* asString(const DynamicContext* context) const; 00053 00057 const MAPM &asSeconds() const { return seconds_; } 00058 00059 static MAPM convert(bool positive, int hour, int minute); 00060 00061 static void validate(const MAPM &tz); 00062 00063 private: 00064 MAPM seconds_; 00065 }; 00066 00067 #endif // _TZONE_HPP 00068 00069