]> git.lyx.org Git - lyx.git/blobdiff - src/CiteEnginesList.cpp
Bulk cleanup/fix incorrect annotation at the end of namespaces.
[lyx.git] / src / CiteEnginesList.cpp
index 0e3f45543d3bd970d99ff904d3cf3d271eafedd2..58b686511b0eda996efd99dd093001ccc5f543bf 100644 (file)
@@ -38,12 +38,11 @@ CiteEnginesList theCiteEnginesList;
 
 
 LyXCiteEngine::LyXCiteEngine(string const & n, string const & i,
-                            vector<string> const & cet, vector<string> const & dbs,
-                            string const & d, vector<string> const & p,
-                            vector<string> const & r, vector<string> const & e):
-       name_(n), id_(i), engine_types_(cet), default_biblios_(dbs), description_(d),
-       package_list_(p), required_engines_(r), excluded_engines_(e),
-       checked_(false), available_(false)
+                            vector<string> const & cet, string const & cfm,
+                            vector<string> const & dbs,
+                            string const & d, vector<string> const & p):
+       name_(n), id_(i), engine_types_(cet), cite_framework_(cfm), default_biblios_(dbs),
+       description_(d), package_list_(p), checked_(false), available_(false)
 {
        filename_ = id_ + ".citeengine";
 }
@@ -85,48 +84,12 @@ bool LyXCiteEngine::hasEngineType(CiteEngineType const & et) const
 }
 
 
-bool LyXCiteEngine::isCompatible(string const & cename) const
-{
-       // do we exclude it?
-       if (find(excluded_engines_.begin(), excluded_engines_.end(), cename) !=
-                       excluded_engines_.end())
-               return false;
-
-       LyXCiteEngine const * const lm = theCiteEnginesList[cename];
-       if (!lm)
-               return true;
-
-       // does it exclude us?
-       vector<string> const excengs = lm->getExcludedEngines();
-       if (find(excengs.begin(), excengs.end(), id_) != excengs.end())
-               return false;
-
-       return true;
-}
-
-
-bool LyXCiteEngine::areCompatible(string const & eng1, string const & eng2)
-{
-       LyXCiteEngine const * const lm1 = theCiteEnginesList[eng1];
-       if (lm1)
-               return lm1->isCompatible(eng2);
-       LyXCiteEngine const * const lm2 = theCiteEnginesList[eng2];
-       if (lm2)
-               return lm2->isCompatible(eng1);
-       // Can't check it either way.
-       return true;
-}
-
-
 string LyXCiteEngine::getDefaultBiblio(CiteEngineType const & cet) const
 {
        string res;
        string const etp = theCiteEnginesList.getTypeAsString(cet) + ":";
        //check whether all of the required packages are available
-       vector<string>::const_iterator it  = default_biblios_.begin();
-       vector<string>::const_iterator end = default_biblios_.end();
-       for (; it != end; ++it) {
-               string const s = *it;
+       for (string const &s: default_biblios_) {
                if (prefixIs(s, etp))
                        res = split(s, ':');
                else if (!contains(s, ':') && res.empty())
@@ -138,10 +101,18 @@ string LyXCiteEngine::getDefaultBiblio(CiteEngineType const & cet) const
 
 bool LyXCiteEngine::isDefaultBiblio(string const & bf) const
 {
-       if (find(default_biblios_.begin(), default_biblios_.end(), bf) != default_biblios_.end())
-               return true;
-       string const bfp = ":" + bf;
-       return find(default_biblios_.begin(), default_biblios_.end(), bfp) != default_biblios_.end();
+       string const bfs = ":" + bf;
+       for (string const &s: default_biblios_)
+               if (suffixIs(s, bfs) || bf == s)
+                       return true;
+
+       return false;
+}
+
+
+bool LyXCiteEngine::requires(const string p) const
+{
+       return find(package_list_.begin(), package_list_.end(), p) != package_list_.end();
 }
 
 
@@ -177,7 +148,7 @@ CiteEngineTypeTranslator const & citeenginetypetranslator()
        return translator;
 }
 
-} // namespace anon
+} // namespace
 
 
 string CiteEnginesList::getTypeAsString(CiteEngineType const & et) const
@@ -244,6 +215,10 @@ bool CiteEnginesList::read()
                                cet = split(cet, p, '|');
                                cets.push_back(p);
                        }
+                       if (!lex.next(true))
+                               break;
+                       string const citeframework = lex.getString();
+                       LYXERR(Debug::TCLASS, "CiteFramework: " << citeframework);
                        if (!lex.next(true))
                                break;
                        string db = lex.getString();
@@ -269,29 +244,9 @@ bool CiteEnginesList::read()
                                str = split(str, p, ',');
                                pkgs.push_back(p);
                        }
-                       if (!lex.next())
-                               break;
-                       str = lex.getString();
-                       LYXERR(Debug::TCLASS, "Required: " << str);
-                       vector<string> req;
-                       while (!str.empty()) {
-                               string p;
-                               str = split(str, p, '|');
-                               req.push_back(p);
-                       }
-                       if (!lex.next())
-                               break;
-                       str = lex.getString();
-                       LYXERR(Debug::TCLASS, "Excluded: " << str);
-                       vector<string> exc;
-                       while (!str.empty()) {
-                               string p;
-                               str = split(str, p, '|');
-                               exc.push_back(p);
-                       }
                        // This code is run when we have
-                       // cename, fname, desc, pkgs, req and exc
-                       addCiteEngine(cename, fname, cets, dbs, desc, pkgs, req, exc);
+                       // cename, fname, cets, citeframework, dbs, desc, pkgs
+                       addCiteEngine(cename, fname, cets, citeframework, dbs, desc, pkgs);
                } // end switch
        } //end while
 
@@ -305,11 +260,10 @@ bool CiteEnginesList::read()
 
 void CiteEnginesList::addCiteEngine(string const & cename,
        string const & filename, vector<string> const & cets,
-       vector<string> const & dbs, string const & description,
-       vector<string> const & pkgs, vector<string> const & req,
-       vector<string> const & exc)
+       string const & citeframework, vector<string> const & dbs,
+       string const & description, vector<string> const & pkgs)
 {
-       LyXCiteEngine ce(cename, filename, cets, dbs, description, pkgs, req, exc);
+       LyXCiteEngine ce(cename, filename, cets, citeframework, dbs, description, pkgs);
        englist_.push_back(ce);
 }