summaryrefslogtreecommitdiff
path: root/src/components/policy/policy_regular/src/policy_table/types.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/policy/policy_regular/src/policy_table/types.cc')
-rw-r--r--src/components/policy/policy_regular/src/policy_table/types.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/components/policy/policy_regular/src/policy_table/types.cc b/src/components/policy/policy_regular/src/policy_table/types.cc
index 7928973919..c448167e53 100644
--- a/src/components/policy/policy_regular/src/policy_table/types.cc
+++ b/src/components/policy/policy_regular/src/policy_table/types.cc
@@ -737,6 +737,8 @@ void MessageString::SetPolicyTableType(PolicyTableType pt_type) {
}
// MessageLanguages methods
+const std::string MessageLanguages::default_language_("en-us");
+
MessageLanguages::MessageLanguages() : CompositeType(kUninitialized) {}
MessageLanguages::MessageLanguages(const Languages& languages)
: CompositeType(kUninitialized), languages(languages) {}
@@ -753,6 +755,10 @@ bool MessageLanguages::is_valid() const {
if (!languages.is_valid()) {
return false;
}
+ // Each RPC must have message in english
+ if (languages.end() == languages.find(default_language_)) {
+ return false;
+ }
return Validate();
}
bool MessageLanguages::is_initialized() const {
@@ -781,6 +787,11 @@ void MessageLanguages::ReportErrors(rpc::ValidationReport* report__) const {
if (!languages.is_valid()) {
languages.ReportErrors(&report__->ReportSubobject("languages"));
}
+ if (languages.end() == languages.find(default_language_)) {
+ report__->set_validation_info(
+ "this message does not support the default language '" +
+ default_language_ + "'");
+ }
}
void MessageLanguages::SetPolicyTableType(PolicyTableType pt_type) {