ParameterParser.h
00001 #ifndef gridripper_odesolver_shoot_ParameterParser_h
00002 #define gridripper_odesolver_shoot_ParameterParser_h
00003
00004 #include <gridripper/lang/IllegalArgumentException.h>
00005 #include <gridripper/tvalarray.h>
00006 #include <gridripper/odesolver/ODE.h>
00007 #include <gridripper/util/GrrProperties.h>
00008 #include <gridripper/Parameters.h>
00009 #include <gridripper/util/ParameterPreprocessor.h>
00010 #include <string>
00011
00012 namespace gridripper { namespace odesolver { namespace shoot {
00013
00014 class ODEIntegrator;
00015 using namespace gridripper::util;
00016
00017 using namespace std;
00018
00026 class ParameterParser
00027 {
00028 public:
00029
00030
00031
00032
00034 ODE* ode;
00035
00036
00037
00038
00040 ODEIntegrator* odeIntegrator;
00041
00043 double dx;
00044
00046 bool dxSet;
00047
00052 int subSteps;
00053
00055 bool subStepsSet;
00056
00057
00058
00059
00060
00064 string dataFormat;
00065
00066 private:
00067 const GrrProperties& properties;
00068 Parameters* unprocessedParameters;
00069
00070 public:
00075 ParameterParser(const GrrProperties& props);
00076
00077 ~ParameterParser();
00078
00082 void parse() throw(IllegalArgumentException&);
00083
00084 protected:
00089 string* getParameter(string key) const;
00090
00091 private:
00092 ParameterPreprocessor* createPreprocessor() const;
00093 };
00094
00095 } } }
00096
00097 #endif