diff options
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.cc | 11 |
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) { |