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
9Item::Item(const Settings* settings, const Label& label)
10    : settings_(settings),
11      label_(label),
12      defined_from_(NULL) {
13}
14
15Item::~Item() {
16}
17
18Config* Item::AsConfig() { return NULL; }
19const Config* Item::AsConfig() const { return NULL; }
20Target* Item::AsTarget() { return NULL; }
21const Target* Item::AsTarget() const { return NULL; }
22Toolchain* Item::AsToolchain() { return NULL; }
23const Toolchain* Item::AsToolchain() const { return NULL; }
24
25std::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
36bool Item::OnResolved(Err* err) {
37  return true;
38}
39