SourceForge.net Logo

Timezone.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _TZONE_HPP
00021 #define _TZONE_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/framework/ReferenceCounted.hpp>
00025 #include <xqilla/items/ATDurationOrDerived.hpp>
00026 #include <xqilla/mapm/m_apm.h>
00027 
00028 #include <xercesc/util/XercesDefs.hpp>
00029 
00030 class DynamicContext;
00031 
00032 class XQILLA_API Timezone : public ReferenceCounted
00033 {
00034 public :
00035   typedef RefCountPointer<const Timezone> Ptr;
00036 
00040   Timezone(const MAPM &seconds);
00041 
00045   Timezone(const ATDurationOrDerived::Ptr &duration, const DynamicContext* context);
00046 
00050   bool equals(const Timezone::Ptr &other) const;
00051 
00052   ATDurationOrDerived::Ptr asDayTimeDuration(const DynamicContext* context) const;
00053   
00058   const XMLCh* asString(const DynamicContext* context) const;
00059 
00063   const MAPM &asSeconds() const { return seconds_; }
00064 
00065   static MAPM convert(bool positive, int hour, int minute);
00066 
00067   static void validate(const MAPM &tz);
00068 
00069 private:
00070   MAPM seconds_;
00071 };
00072 
00073 #endif // _TZONE_HPP
00074 
00075