1 // Copyright (c) 2013 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 "tools/gn/item.h" 6 7 #include "base/logging.h" 8 9 Item::Item(const Settings* settings, const Label& label) 10 : settings_(settings), 11 label_(label), 12 defined_from_(NULL) { 13 } 14 15 Item::~Item() { 16 } 17 18 Config* Item::AsConfig() { return NULL; } 19 const Config* Item::AsConfig() const { return NULL; } 20 Target* Item::AsTarget() { return NULL; } 21 const Target* Item::AsTarget() const { return NULL; } 22 Toolchain* Item::AsToolchain() { return NULL; } 23 const Toolchain* Item::AsToolchain() const { return NULL; } 24 25 std::string Item::GetItemTypeName() const { 26 if (AsConfig()) 27 return "config"; 28 if (AsTarget()) 29 return "target"; 30 if (AsToolchain()) 31 return "toolchain"; 32 NOTREACHED(); 33 return "this thing that I have no idea what it is"; 34 } 35