source: XMLIO_V2/dev/dev_rv/src/xmlio/node/context.hpp @ 188

Last change on this file since 188 was 188, checked in by hozdoba, 12 years ago
File size: 3.0 KB
Line 
1#ifndef __XMLIO_CContext__
2#define __XMLIO_CContext__
3
4/// xmlioserver headers ///
5#include "xmlioserver_spl.hpp"
6#include "node_type.hpp"
7#include "calendar.hpp"
8
9#include "declare_group.hpp"
10
11namespace xmlioserver {
12namespace tree {
13   
14   /// ////////////////////// Déclarations ////////////////////// ///
15   class CContextGroup;
16   class CContextAttributes;
17   class CContext;
18
19   ///--------------------------------------------------------------
20
21   // Declare/Define CFileAttribute
22   BEGIN_DECLARE_ATTRIBUTE_MAP(CContext)
23#  include "context_attribute.conf"
24   END_DECLARE_ATTRIBUTE_MAP(CContext)
25
26   ///--------------------------------------------------------------
27
28   class CContext
29      : public CObjectTemplate<CContext>
30      , public CContextAttributes
31   {
32         /// typedef ///
33         typedef CObjectTemplate<CContext>   SuperClass;
34         typedef CContextAttributes SuperClassAttribute;
35
36      public :
37
38         typedef CContextAttributes RelAttributes;
39         typedef CContext           RelGroup;
40
41         //---------------------------------------------------------
42
43      public :
44
45         /// Constructeurs ///
46         CContext(void);
47         explicit CContext(const StdString & id);
48         CContext(const CContext & context);       // Not implemented yet.
49         CContext(const CContext * const context); // Not implemented yet.
50
51         /// Destructeur ///
52         virtual ~CContext(void);
53
54         //---------------------------------------------------------
55
56      public :
57     
58         /// Mutateurs ///
59         void setCalendar(boost::shared_ptr<date::CCalendar> newCalendar);
60     
61         /// Accesseurs ///
62         boost::shared_ptr<date::CCalendar> getCalendar(void) const;
63
64         /// Accesseurs statiques ///
65         static StdString GetName(void);
66         static StdString GetDefName(void);         
67         static ENodeType GetType(void);         
68
69         static boost::shared_ptr<CContextGroup> GetContextGroup(void);
70
71      public :
72
73         /// Traitements ///
74         virtual void solveDescInheritance(const CAttributeMap * const parent = 0);
75         void solveFieldRefInheritance(void);
76         void solveCalendar(void);
77
78         /// Autres méthodes statiques ///
79         static void ShowTree(StdOStream & out = std::clog);
80
81         /// Test ///
82         virtual bool hasChild(void) const;
83         
84      public :
85     
86         /// Autres ///
87         virtual void parse(xml::CXMLNode & node);
88
89         virtual StdString toString(void) const;
90         virtual void toBinary  (StdOStream & os) const;
91         virtual void fromBinary(StdIStream & is);
92         
93      private :
94     
95         boost::shared_ptr<date::CCalendar> calendar;
96
97   }; // class CContext
98
99   ///--------------------------------------------------------------
100
101   // Declare/Define CContextGroup and CContextDefinition
102   DECLARE_GROUP(CContext);
103
104   ///--------------------------------------------------------------
105
106} // namespace tree
107} // namespace xmlioserver
108
109#endif // __XMLIO_CContext__
Note: See TracBrowser for help on using the repository browser.