- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / history / android / android_urls_sql_handler.cc
1 // Copyright (c) 2012 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 "chrome/browser/history/android/android_urls_sql_handler.h"
6
7 #include "base/logging.h"
8 #include "chrome/browser/history/history_database.h"
9
10 namespace history {
11
12 namespace {
13
14 // The interesting columns of this handler.
15 const HistoryAndBookmarkRow::ColumnID kInterestingColumns[] = {
16     HistoryAndBookmarkRow::RAW_URL, HistoryAndBookmarkRow::URL_ID };
17
18 } // namespace
19
20 AndroidURLsSQLHandler::AndroidURLsSQLHandler(HistoryDatabase* history_db)
21     : SQLHandler(kInterestingColumns, arraysize(kInterestingColumns)),
22       history_db_(history_db) {
23 }
24
25 AndroidURLsSQLHandler::~AndroidURLsSQLHandler() {
26 }
27
28 bool AndroidURLsSQLHandler::Update(const HistoryAndBookmarkRow& row,
29                                    const TableIDRows& ids_set) {
30   DCHECK(row.is_value_set_explicitly(HistoryAndBookmarkRow::URL_ID));
31   DCHECK(row.is_value_set_explicitly(HistoryAndBookmarkRow::RAW_URL));
32   if (ids_set.size() != 1)
33     return false;
34
35   AndroidURLRow android_url_row;
36   if (!history_db_->GetAndroidURLRow(ids_set[0].url_id, &android_url_row))
37     return false;
38
39   return history_db_->UpdateAndroidURLRow(android_url_row.id, row.raw_url(),
40                                           row.url_id());
41 }
42
43 bool AndroidURLsSQLHandler::Insert(HistoryAndBookmarkRow* row) {
44   AndroidURLID new_id = history_db_->AddAndroidURLRow(row->raw_url(),
45                                                       row->url_id());
46   row->set_id(new_id);
47   return new_id;
48 }
49
50 bool AndroidURLsSQLHandler::Delete(const TableIDRows& ids_set) {
51   std::vector<URLID> ids;
52   for (TableIDRows::const_iterator id = ids_set.begin();
53        id != ids_set.end(); ++id)
54     ids.push_back(id->url_id);
55
56   if (!ids.size())
57     return true;
58
59   return history_db_->DeleteAndroidURLRows(ids);
60 }
61
62 }  // namespace history.