Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / components / bookmarks / core / browser / bookmark_match.cc
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "components/bookmarks/core/browser/bookmark_match.h"
6
7 #include "base/logging.h"
8 #include "base/strings/string16.h"
9
10 BookmarkMatch::BookmarkMatch() : node(NULL) {}
11
12 BookmarkMatch::~BookmarkMatch() {}
13
14 // static
15 std::vector<size_t> BookmarkMatch::OffsetsFromMatchPositions(
16     const MatchPositions& match_positions) {
17   std::vector<size_t> offsets;
18   for (MatchPositions::const_iterator i = match_positions.begin();
19        i != match_positions.end(); ++i) {
20     offsets.push_back(i->first);
21     offsets.push_back(i->second);
22   }
23   return offsets;
24 }
25
26 // static
27 BookmarkMatch::MatchPositions BookmarkMatch::ReplaceOffsetsInMatchPositions(
28     const MatchPositions& match_positions,
29     const std::vector<size_t>& offsets) {
30   DCHECK_EQ(2 * match_positions.size(), offsets.size());
31   MatchPositions new_match_positions;
32   std::vector<size_t>::const_iterator offset_iter = offsets.begin();
33   for (MatchPositions::const_iterator match_iter = match_positions.begin();
34        match_iter != match_positions.end(); ++match_iter, ++offset_iter) {
35     const size_t begin = *offset_iter;
36     ++offset_iter;
37     const size_t end = *offset_iter;
38     if ((begin != base::string16::npos) && (end != base::string16::npos)) {
39       const MatchPosition new_match_position(begin, end);
40       new_match_positions.push_back(new_match_position);
41     }
42   }
43   return new_match_positions;
44 }