#ifndef STORM_SETTINGS_MODULES_MODULESETTINGS_H_ #define STORM_SETTINGS_MODULES_MODULESETTINGS_H_ #include namespace storm { namespace settings { // Forward-declare SettingsManager class. class SettingsManager; namespace modules { /*! * This is the base class of the settings for a particular module. */ class ModuleSettings { public: /*! * Constructs a new settings object. * * @param settingsManager The manager responsible for these settings. */ ModuleSettings(storm::settings::SettingsManager& settingsManager); /*! * Checks whether the settings are consistent. If they are inconsistent, an exception is thrown. * * @return True if the settings are consistent. */ virtual bool check() const; protected: /*! * Retrieves the manager responsible for the settings. * * @return The manager responsible for the settings. */ storm::settings::SettingsManager const& getSettingsManager() const; /*! * Retrieves whether the option with the given name was set. */ bool isSet(std::string const& optionName) const; private: // The settings manager responsible for the settings. storm::settings::SettingsManager const& settingsManager; }; } // namespace modules } // namespace settings } // namespace storm #endif /* STORM_SETTINGS_MODULES_MODULESETTINGS_H_ */