+
+ // Add the styles from AddToCiteEngine to the class' styles
+ // (but only if they are not yet defined)
+ for (auto const & cis : class_cite_styles_) {
+ // Only consider the current CiteEngineType
+ if (!(type & cis.first))
+ continue;
+ for (auto const & ciss : cis.second) {
+ bool defined = false;
+ // Check if the style "name" is already def'ed
+ for (auto const & av : getCiteStyles(cis.first))
+ if (av.name == ciss.name)
+ defined = true;
+ if (!defined) {
+ if (cis.first == ENGINE_TYPE_AUTHORYEAR && apply_ay)
+ cite_styles_[ENGINE_TYPE_AUTHORYEAR].push_back(ciss);
+ else if (cis.first == ENGINE_TYPE_NUMERICAL && apply_num)
+ cite_styles_[ENGINE_TYPE_NUMERICAL].push_back(ciss);
+ else if (cis.first == ENGINE_TYPE_DEFAULT && apply_def)
+ cite_styles_[ENGINE_TYPE_DEFAULT].push_back(ciss);
+ }
+ }
+ }
+ if (type & ENGINE_TYPE_AUTHORYEAR && apply_ay)
+ class_cite_styles_[ENGINE_TYPE_AUTHORYEAR].clear();
+ if (type & ENGINE_TYPE_NUMERICAL && apply_num)
+ class_cite_styles_[ENGINE_TYPE_NUMERICAL].clear();
+ if (type & ENGINE_TYPE_DEFAULT && apply_def)
+ class_cite_styles_[ENGINE_TYPE_DEFAULT].clear();