|  | // Copyright (c) 2013 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 "tools/gn/item.h" | 
|  |  | 
|  | #include "base/logging.h" | 
|  | #include "tools/gn/settings.h" | 
|  |  | 
|  | Item::Item(const Settings* settings, | 
|  | const Label& label, | 
|  | const std::set<SourceFile>& build_dependency_files) | 
|  | : settings_(settings), | 
|  | label_(label), | 
|  | build_dependency_files_(build_dependency_files), | 
|  | defined_from_(nullptr) {} | 
|  |  | 
|  | Item::~Item() = default; | 
|  |  | 
|  | Config* Item::AsConfig() { | 
|  | return nullptr; | 
|  | } | 
|  | const Config* Item::AsConfig() const { | 
|  | return nullptr; | 
|  | } | 
|  | Pool* Item::AsPool() { | 
|  | return nullptr; | 
|  | } | 
|  | const Pool* Item::AsPool() const { | 
|  | return nullptr; | 
|  | } | 
|  | Target* Item::AsTarget() { | 
|  | return nullptr; | 
|  | } | 
|  | const Target* Item::AsTarget() const { | 
|  | return nullptr; | 
|  | } | 
|  | Toolchain* Item::AsToolchain() { | 
|  | return nullptr; | 
|  | } | 
|  | const Toolchain* Item::AsToolchain() const { | 
|  | return nullptr; | 
|  | } | 
|  |  | 
|  | std::string Item::GetItemTypeName() const { | 
|  | if (AsConfig()) | 
|  | return "config"; | 
|  | if (AsTarget()) | 
|  | return "target"; | 
|  | if (AsToolchain()) | 
|  | return "toolchain"; | 
|  | if (AsPool()) | 
|  | return "pool"; | 
|  | NOTREACHED(); | 
|  | return "this thing that I have no idea what it is"; | 
|  | } | 
|  |  | 
|  | bool Item::OnResolved(Err* err) { | 
|  | return true; | 
|  | } |