+
+class LyXModule {
+public:
+ ///
+ LyXModule(std::string const & n, std::string const & i,
+ std::string const & d, std::vector<std::string> const & p,
+ std::vector<std::string> const & r,
+ std::vector<std::string> const & e);
+ /// whether the required packages are available
+ bool isAvailable();
+ ///
+ std::string const & getName() const { return name; }
+ ///
+ std::string const & getID() const { return id; }
+ ///
+ std::string const & getFilename() const { return filename; }
+ ///
+ std::string const & getDescription() const { return description; }
+ ///
+ std::vector<std::string> const & getPackageList() const
+ { return packageList; }
+ ///
+ std::vector<std::string> const & getRequiredModules() const
+ { return requiredModules; }
+ /// Modules this one excludes: the list should be treated disjunctively
+ std::vector<std::string> const & getExcludedModules() const
+ { return excludedModules; }
+ /// \return true if the module is compatible with this one, i.e.,
+ /// it does not exclude us and we do not exclude it.
+ /// this will also return true if modName is unknown and we do not
+ /// exclude it, since in that case we cannot check its exclusions.
+ bool isCompatible(std::string const & modName) const;
+ ///
+ static bool areCompatible(std::string const & mod1, std::string const & mod2);
+private: