diff options
Diffstat (limited to 'src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc')
-rw-r--r-- | src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc b/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc index fa0d15252e..8876ffa2e8 100644 --- a/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc +++ b/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc @@ -129,23 +129,32 @@ mobile_apis::Result::eType CreateInteractionChoiceSetRequest::CheckChoiceSet( const SmartArray* choice_set = (*message_)[strings::msg_params][strings::choice_set].asArray(); - SmartArray::const_iterator choice_set_it = choice_set->begin(); + SmartArray::const_iterator current_choice_set_it = choice_set->begin(); + SmartArray::const_iterator next_choice_set_it; - for (; choice_set->end() != choice_set_it; ++choice_set_it) { + for (; choice_set->end() != current_choice_set_it; ++current_choice_set_it) { std::pair<std::set<uint32_t>::iterator, bool> ins_res = - choice_id_set.insert((*choice_set_it)[strings::choice_id].asInt()); + choice_id_set.insert( + (*current_choice_set_it)[strings::choice_id].asInt()); if (!ins_res.second) { LOG4CXX_ERROR(logger_, "Choise with ID " - << (*choice_set_it)[strings::choice_id].asInt() + << (*current_choice_set_it)[strings::choice_id].asInt() << " already exists"); return mobile_apis::Result::INVALID_ID; } - if (IsWhiteSpaceExist(*choice_set_it)) { + if (IsWhiteSpaceExist(*current_choice_set_it)) { LOG4CXX_ERROR(logger_, "Incoming choice set has contains \t\n \\t \\n"); return mobile_apis::Result::INVALID_DATA; } + for (next_choice_set_it = current_choice_set_it + 1; + choice_set->end() != next_choice_set_it; + ++next_choice_set_it) { + if (compareSynonyms(*current_choice_set_it, *next_choice_set_it)) { + return mobile_apis::Result::DUPLICATE_NAME; + } + } } return mobile_apis::Result::SUCCESS; } |