00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef STRING_PARAMETER_HPP
00022 #define STRING_PARAMETER_HPP
00023
00024 #include <Parameter.hpp>
00025
00026 #include <Stringify.hpp>
00027 #include <ErrorHandler.hpp>
00028
00035 class StringParameter
00036 : public Parameter
00037 {
00038 private:
00039 void reset()
00040 {
00041 __stringValue = __defaultStringValue;
00042 }
00043
00044 const std::string __defaultStringValue;
00045 std::string __stringValue;
00046
00047 std::ostream& put (std::ostream& os) const
00048 {
00049 os << __stringValue;
00050 return os;
00051 }
00052
00053 public:
00055 void get(IdentifierSet& I)
00056 {
00057 ;
00058 }
00059
00060 void set(const real_t d)
00061 {
00062 throw ErrorHandler(__FILE__,__LINE__,
00063 "cannot assignate the real value '"+stringify(d)
00064 +"' to a string parameter",
00065 ErrorHandler::normal);
00066 }
00067
00068 void set(const int i)
00069 {
00070 throw ErrorHandler(__FILE__,__LINE__,
00071 "cannot assignate the integer value '"+stringify(i)
00072 +"' to a string parameter",
00073 ErrorHandler::normal);
00074 }
00075
00076 void set(const char* c)
00077 {
00078 __stringValue = c;
00079 }
00080
00081 operator std::string&()
00082 {
00083 return __stringValue;
00084 }
00085
00086 operator const std::string&() const
00087 {
00088 return __stringValue;
00089 }
00090
00091 const std::string typeName() const
00092 {
00093 return "string";
00094 }
00095
00096 StringParameter(const StringParameter& sp)
00097 : Parameter(sp),
00098 __defaultStringValue(sp.__defaultStringValue),
00099 __stringValue(sp.__stringValue)
00100 {
00101 ;
00102 }
00103
00104 StringParameter(const std::string& s, const char* label)
00105 : Parameter(Parameter::String, label),
00106 __defaultStringValue(s),
00107 __stringValue(__defaultStringValue)
00108 {
00109 ;
00110 }
00111
00112 StringParameter(const char* c, const char* label)
00113 : Parameter(Parameter::String, label),
00114 __defaultStringValue(c),
00115 __stringValue(__defaultStringValue)
00116 {
00117 ;
00118 }
00119
00120 ~StringParameter()
00121 {
00122 ;
00123 }
00124 };
00125
00126 #endif // STRING_PARAMETER_HPP