// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "content/common/indexed_db/indexed_db_key_path.h" #include "base/logging.h" namespace content { using blink::WebIDBKeyPathTypeArray; using blink::WebIDBKeyPathTypeNull; using blink::WebIDBKeyPathTypeString; IndexedDBKeyPath::IndexedDBKeyPath() : type_(WebIDBKeyPathTypeNull) {} IndexedDBKeyPath::IndexedDBKeyPath(const base::string16& string) : type_(WebIDBKeyPathTypeString), string_(string) {} IndexedDBKeyPath::IndexedDBKeyPath(const std::vector& array) : type_(WebIDBKeyPathTypeArray), array_(array) {} IndexedDBKeyPath::~IndexedDBKeyPath() {} const std::vector& IndexedDBKeyPath::array() const { DCHECK(type_ == blink::WebIDBKeyPathTypeArray); return array_; } const base::string16& IndexedDBKeyPath::string() const { DCHECK(type_ == blink::WebIDBKeyPathTypeString); return string_; } bool IndexedDBKeyPath::operator==(const IndexedDBKeyPath& other) const { if (type_ != other.type_) return false; switch (type_) { case WebIDBKeyPathTypeNull: return true; case WebIDBKeyPathTypeString: return string_ == other.string_; case WebIDBKeyPathTypeArray: return array_ == other.array_; } NOTREACHED(); return false; } } // namespace content