/[ghosts]/ghosts/gedcomparser/src/GEDCOMParser/DateManagement/Range.hh
ViewVC logotype

Diff of /ghosts/gedcomparser/src/GEDCOMParser/DateManagement/Range.hh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by cpcp, Wed Oct 23 19:21:41 2002 UTC revision 1.2 by cpcp, Tue Nov 12 21:25:21 2002 UTC
# Line 0  Line 1 
1    /*
2        Copyright 2002 Cyril Picard
3    
4        This file is part of the GEDCOMParser library
5        (developed within the Genealogy Free Software Tools project).
6    
7        The GEDCOMParser library is free software; you can redistribute it and/or modify
8        it under the terms of the GNU General Public License as published by
9        the Free Software Foundation; either version 2 of the License, or
10        (at your option) any later version.
11    
12        The GEDCOMParser library is distributed in the hope that it will be useful,
13        but WITHOUT ANY WARRANTY; without even the implied warranty of
14        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15        GNU General Public License for more details.
16    
17        You should have received a copy of the GNU General Public License
18        along with the GEDCOMParser library ; if not, write to the Free Software
19        Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20    
21    */
22    
23    #ifndef _GEDCOMPARSER_DATEMANAGEMENT_RANGE_HH_
24    #define _GEDCOMPARSER_DATEMANAGEMENT_RANGE_HH_
25    
26    #include "GEDCOMParser/DateManagement/Date.hh"
27    
28    ///
29    namespace GEDCOMParser
30    {
31      ///
32      namespace DateManagement
33      {
34        /** @memo Implements the GEDCOM 5.5 DATE_RANGE primitive element
35         **/
36        class Range
37        {
38        public:
39          /// @memo Implements the range types enumeration (typedef'd to enumRangeTypes)
40          enum _enumRangeTypes
41            {
42              ///
43              e_Null,
44              ///
45              e_Before,
46              ///
47              e_After,
48              ///
49              e_Between
50            };
51          ///
52          typedef enum _enumRangeTypes enumRangeTypes;      
53          Range(void) :
54            _type(e_Null),
55            _bound1(0),
56            _bound2(0)
57          {
58          };
59          Range(Range const &r) :
60            _type(r._type),
61            _bound1(0),
62            _bound2(0)
63          {
64            if (r._bound1 != 0)
65              {
66                _bound1 = new GEDCOMParser::DateManagement::Date(*r._bound1);
67              }
68            if (r._bound2 != 0)
69              {
70                _bound2 = new GEDCOMParser::DateManagement::Date(*r._bound2);
71              }
72            return;
73          };
74          ~Range(void)
75          {
76            delete _bound1; _bound1 = 0;
77            delete _bound2; _bound2 = 0;
78            return;
79          };
80          ///@name Accessors (set)
81          //@{
82          ///
83          void setType(enumRangeTypes type);
84          ///
85          void setBound1(GEDCOMParser::DateManagement::Date const &bound1);
86          ///
87          void setBound2(GEDCOMParser::DateManagement::Date const &bound2);
88          //@}
89          
90          ///@name Accessors (get)
91          //@{
92          ///
93          std::string const getDisplayValue(void) const;
94          //@}
95        private:
96          enumRangeTypes _type;
97          GEDCOMParser::DateManagement::Date * _bound1;
98          GEDCOMParser::DateManagement::Date * _bound2;
99        };
100      };
101    };
102    
103    #endif

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26