Make MetadataList.messages private

This commit is contained in:
Oliver Hamlet
2015-12-08 16:12:08 +00:00
parent eb07ad579d
commit 9224e30153
4 changed files with 27 additions and 14 deletions
+8
View File
@@ -92,6 +92,10 @@ namespace loot {
return pluginList;
}
std::list<Message> MetadataList::Messages() const {
return messages;
}
// Merges multiple matching regex entries if any are found.
PluginMetadata MetadataList::FindPlugin(const PluginMetadata& plugin) const {
PluginMetadata match(plugin.Name());
@@ -132,6 +136,10 @@ namespace loot {
}
}
void MetadataList::AppendMessage(const Message& message) {
messages.push_back(message);
}
void MetadataList::EvalAllConditions(Game& game, const unsigned int language) {
unordered_set<PluginMetadata> replacementSet;
for (auto &plugin : plugins) {
+4 -1
View File
@@ -53,6 +53,7 @@ namespace loot {
void clear();
std::list<PluginMetadata> Plugins() const;
std::list<Message> Messages() const;
// Merges multiple matching regex entries if any are found.
PluginMetadata FindPlugin(const PluginMetadata& plugin) const;
@@ -62,13 +63,15 @@ namespace loot {
// be required for other plugins.
void ErasePlugin(const PluginMetadata& plugin);
void AppendMessage(const Message& message);
// Eval plugin conditions.
void EvalAllConditions(Game& game, const unsigned int language);
std::list<Message> messages;
protected:
std::unordered_set<PluginMetadata> plugins;
std::list<PluginMetadata> regexPlugins;
std::list<Message> messages;
};
}
+9 -7
View File
@@ -797,12 +797,14 @@ namespace loot {
//Evaluate any conditions in the global messages.
BOOST_LOG_TRIVIAL(debug) << "Evaluating global message conditions.";
list<Message> messages = parsingErrors;
auto metadataListMessages = _lootState.CurrentGame().masterlist.Messages();
messages.insert(end(messages),
begin(metadataListMessages),
end(metadataListMessages));
metadataListMessages = _lootState.CurrentGame().userlist.Messages();
messages.insert(messages.end(),
_lootState.CurrentGame().masterlist.messages.begin(),
_lootState.CurrentGame().masterlist.messages.end());
messages.insert(messages.end(),
_lootState.CurrentGame().userlist.messages.begin(),
_lootState.CurrentGame().userlist.messages.end());
begin(metadataListMessages),
end(metadataListMessages));
try {
list<Message>::iterator it = messages.begin();
while (it != messages.end()) {
@@ -855,7 +857,7 @@ namespace loot {
// There was a parsing error, but roll-back was successful, so the process
// should still complete.
_lootState.CurrentGame().masterlist.messages.push_back(Message(Message::error, e.what()));
_lootState.CurrentGame().masterlist.AppendMessage(Message(Message::error, e.what()));
wasChanged = true;
}
else {
@@ -915,7 +917,7 @@ namespace loot {
//Evaluate any conditions in the global messages.
BOOST_LOG_TRIVIAL(debug) << "Evaluating global message conditions.";
list<Message> messages = _lootState.CurrentGame().masterlist.messages;
list<Message> messages = _lootState.CurrentGame().masterlist.Messages();
try {
list<Message>::iterator it = messages.begin();
while (it != messages.end()) {
+6 -6
View File
@@ -73,7 +73,7 @@ TEST_F(MetadataList, Load) {
EXPECT_NO_THROW(ml.Load(metadataPath));
EXPECT_EQ(std::list<loot::Message>({
loot::Message(loot::Message::say, "A global message."),
}), ml.messages);
}), ml.Messages());
// Non-regex plugins can be outputted in any order, and regex entries can
// match each other, so convert the list to a set of strings for
@@ -92,14 +92,14 @@ TEST_F(MetadataList, Load) {
}), names);
EXPECT_ANY_THROW(ml.Load("NotAPlugin.esm"));
EXPECT_TRUE(ml.messages.empty());
EXPECT_TRUE(ml.Messages().empty());
EXPECT_TRUE(ml.Plugins().empty());
// Fill the list again.
ASSERT_NO_THROW(ml.Load(metadataPath));
EXPECT_ANY_THROW(ml.Load("Blank.missing.esm"));
EXPECT_TRUE(ml.messages.empty());
EXPECT_TRUE(ml.Messages().empty());
EXPECT_TRUE(ml.Plugins().empty());
}
@@ -120,7 +120,7 @@ TEST_F(MetadataList, Save) {
EXPECT_EQ(std::list<loot::Message>({
loot::Message(loot::Message::say, "A global message."),
}), ml.messages);
}), ml.Messages());
// Non-regex plugins can be outputted in any order, and regex entries can
// match each other, so convert the list to a set of strings for
@@ -142,11 +142,11 @@ TEST_F(MetadataList, Save) {
TEST_F(MetadataList, clear) {
loot::MetadataList ml;
ASSERT_NO_THROW(ml.Load(metadataPath));
ASSERT_FALSE(ml.messages.empty());
ASSERT_FALSE(ml.Messages().empty());
ASSERT_FALSE(ml.Plugins().empty());
ml.clear();
EXPECT_TRUE(ml.messages.empty());
EXPECT_TRUE(ml.Messages().empty());
EXPECT_TRUE(ml.Plugins().empty());
}