source: XMLIO_V2/dev/trunk/src/XMLIO/base_attribut.hpp @ 98

Last change on this file since 98 was 98, checked in by ymipsl, 14 years ago
File size: 4.1 KB
Line 
1#ifndef __BASE_ATTRIBUT__
2#define __BASE_ATTRIBUT__
3
4using std::ostream;
5using namespace blitz ;
6
7
8using XMLIOSERVER::XMLIOIncompatibeTypeException;
9
10namespace XMLIOSERVER
11{
12   class BaseAttribut
13   {
14     public:
15     
16     virtual const char * getName(void) const = 0  ;
17       
18     virtual ostream & print(ostream& o) const = 0  ;
19     
20     friend ostream& operator <<(ostream& o,const BaseAttribut& Attr)
21     {return Attr.print(o) ; }
22     
23     virtual const char * getId(void) {return getName();} ;
24     bool hasId(void){return (true);}
25
26     virtual void setFromString(const std::string str) = 0;
27     
28     virtual void setValue(const int & value)          { error_set() ; }
29     virtual void setValue(const Array<int,1>& value)  { error_set() ; }
30     virtual void setValue(const Array<int,2>& value)  { error_set() ; }
31     virtual void setValue(const Array<int,3>& value)  { error_set() ; }
32     
33     virtual void setValue(const double & value)          { error_set() ; }
34     virtual void setValue(const Array<double,1>& value)  { error_set() ; }
35     virtual void setValue(const Array<double,2>& value)  { error_set() ; }
36     virtual void setValue(const Array<double,3>& value)  { error_set() ; }
37     
38     virtual void setValue(const bool & value)          { error_set() ; }
39     virtual void setValue(const Array<bool,1>& value)  { error_set() ; }
40     virtual void setValue(const Array<bool,2>& value)  { error_set() ; }
41     virtual void setValue(const Array<bool,3>& value)  { error_set() ; }
42     
43     virtual void setValue(const char * value)            { error_set() ; }
44     virtual void setValue(const string & value)          { error_set() ; }
45     virtual void setValue(const Array<string,1>& value)  { error_set() ; }
46     virtual void setValue(const Array<string,2>& value)  { error_set() ; }
47     virtual void setValue(const Array<string,3>& value)  { error_set() ; }
48     
49     virtual void setValue(const char & value)          { error_set() ; }
50     virtual void setValue(const Array<char,1>& value)  { error_set() ; }
51     virtual void setValue(const Array<char,2>& value)  { error_set() ; }
52     virtual void setValue(const Array<char,3>& value)  { error_set() ; }
53
54
55     virtual void getValue(int & value) const        { error_get() ; }
56     virtual void getValue(Array<int,1>& value) const  { error_get() ; }
57     virtual void getValue(Array<int,2>& value) const  { error_get() ; }
58     virtual void getValue(Array<int,3>& value) const  { error_get() ; }
59     
60     virtual void getValue(double & value) const          { error_get() ; }
61     virtual void getValue(Array<double,1>& value) const  { error_get() ; }
62     virtual void getValue(Array<double,2>& value) const  { error_get() ; }
63     virtual void getValue(Array<double,3>& value) const  { error_get() ; }
64     
65     virtual void getValue(bool & value) const          { error_get() ; }
66     virtual void getValue(Array<bool,1>& value) const  { error_get() ; }
67     virtual void getValue(Array<bool,2>& value) const  { error_get() ; }
68     virtual void getValue(Array<bool,3>& value) const  { error_get() ; }
69     
70     virtual void getValue(char * value) const            { error_get() ; }
71     virtual void getValue(string & value) const          { error_get() ; }
72     virtual void getValue(Array<string,1>& value) const  { error_get() ; }
73     virtual void getValue(Array<string,2>& value) const  { error_get() ; }
74     virtual void getValue(Array<string,3>& value) const  { error_get() ; }
75     
76     virtual void getValue(char & value) const          { error_get() ; }
77     virtual void getValue(Array<char,1>& value) const  { error_get() ; }
78     virtual void getValue(Array<char,2>& value) const  { error_get() ; }
79     virtual void getValue(Array<char,3>& value) const  { error_get() ; }
80
81     static void error_set(void)
82     {
83        throw XMLIOIncompatibeTypeException("BaseAttribut::set<type> > Setting value type is incompatible with attribut type");
84     }
85
86     static void error_get(void)
87     {
88        throw XMLIOIncompatibeTypeException("BaseAttribut::set<type> >Getting value type is incompatible with attribut type");
89     }
90   }; //class BaseAttribut
91} // namespace XMLIOSERVER
92
93#endif //__BASE_ATTRIBUT__
94 
Note: See TracBrowser for help on using the repository browser.