Index: chrome/browser/policy/policy_error_map.cc |
diff --git a/chrome/browser/policy/policy_error_map.cc b/chrome/browser/policy/policy_error_map.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d277c6b446597cf4fb33d8451163a341ed35bbe8 |
--- /dev/null |
+++ b/chrome/browser/policy/policy_error_map.cc |
@@ -0,0 +1,71 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/policy/policy_error_map.h" |
+ |
+#include <algorithm> |
+#include <utility> |
+ |
+#include "base/logging.h" |
+#include "base/stl_util.h" |
+#include "base/utf_string_conversions.h" |
+#include "ui/base/l10n/l10n_util.h" |
+ |
+namespace policy { |
+ |
+PolicyErrorMap::PolicyErrorMap() { |
+} |
+ |
+PolicyErrorMap::~PolicyErrorMap() { |
+ Clear(); |
+} |
+ |
+void PolicyErrorMap::AddError(ConfigurationPolicyType policy, int message_id) { |
+ string16 error = l10n_util::GetStringUTF16(message_id); |
+ map_.insert(std::make_pair(policy, error)); |
+} |
+ |
+void PolicyErrorMap::AddError(ConfigurationPolicyType policy, |
+ int message_id, |
+ const std::string& replacement) { |
+ string16 error = l10n_util::GetStringFUTF16(message_id, |
+ ASCIIToUTF16(replacement)); |
+ map_.insert(std::make_pair(policy, error)); |
+} |
+ |
+ListValue* PolicyErrorMap::GetErrors( |
+ ConfigurationPolicyType policy) const { |
+ std::pair<const_iterator, const_iterator> range = map_.equal_range(policy); |
+ |
+ if (range.first == range.second) |
+ return NULL; |
+ |
+ ListValue* list = new ListValue(); |
+ for (const_iterator it = range.first; it != range.second; ++it) |
+ list->Append(Value::CreateStringValue(it->second)); |
+ |
+ return list; |
+} |
+ |
+bool PolicyErrorMap::empty() const { |
+ return map_.empty(); |
+} |
+ |
+size_t PolicyErrorMap::size() const { |
+ return map_.size(); |
+} |
+ |
+PolicyErrorMap::const_iterator PolicyErrorMap::begin() const { |
+ return map_.begin(); |
+} |
+ |
+PolicyErrorMap::const_iterator PolicyErrorMap::end() const { |
+ return map_.end(); |
+} |
+ |
+void PolicyErrorMap::Clear() { |
+ map_.clear(); |
+} |
+ |
+} // namespace policy |