diff options
Diffstat (limited to 'src/components/policy/policy_regular/src/policy_table/validation.cc')
-rw-r--r-- | src/components/policy/policy_regular/src/policy_table/validation.cc | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/components/policy/policy_regular/src/policy_table/validation.cc b/src/components/policy/policy_regular/src/policy_table/validation.cc index 059c18d00e..14b6d657c2 100644 --- a/src/components/policy/policy_regular/src/policy_table/validation.cc +++ b/src/components/policy/policy_regular/src/policy_table/validation.cc @@ -196,6 +196,14 @@ bool Rpcs::Validate() const { return true; } +bool EndpointProperty::Validate() const { + if (!version.is_valid()) { + return false; + } + + return true; +} + bool ModuleConfig::Validate() const { if (PT_PRELOADED == GetPolicyTableType()) { if (vehicle_make.is_initialized()) { @@ -221,6 +229,14 @@ bool ModuleConfig::Validate() const { } } + if (endpoint_properties.is_initialized()) { + const auto& endpoint_property = + endpoint_properties->find(kDefaultOemMappingServiceName); + if (endpoint_properties->end() != endpoint_property) { + return (*endpoint_property).second.version.is_initialized(); + } + } + return true; } @@ -268,6 +284,39 @@ bool DeviceParams::Validate() const { return true; } +bool VehicleDataItem::Validate() const { + if (!ValidateNaming(std::string(name))) { + return false; + }; + + if (!ValidateNaming(std::string(key))) { + return false; + }; + + if (!ValidateTypes()) { + LOG4CXX_ERROR( + logger_, + "Unknown type: " << std::string(type) << " of " << std::string(key)); + return false; + } + return true; +} + +bool VehicleData::Validate() const { + const PolicyTableType policy_table_type = GetPolicyTableType(); + bool result = true; + if (PT_SNAPSHOT == policy_table_type) { + result = + (!schema_items.is_initialized()) && schema_version.is_initialized(); + } + if (PT_UPDATE == policy_table_type || PT_PRELOADED == policy_table_type) { + result = + (schema_version.is_initialized() && schema_items.is_initialized()) || + (!schema_version.is_initialized() && !schema_items.is_initialized()); + } + return result; +} + bool PolicyTable::Validate() const { const PolicyTableType policy_table_type = GetPolicyTableType(); |