1d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch// found in the LICENSE file.
4d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
5d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch#include "tools/gn/item.h"
6d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
7d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch#include "base/logging.h"
8d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
90f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)Item::Item(const Settings* settings, const Label& label)
100f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)    : settings_(settings),
11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      label_(label),
12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      defined_from_(NULL) {
13d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch}
14d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
15d3868032626d59662ff73b372b5d584c1d144c53Ben MurdochItem::~Item() {
16d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch}
17d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
18d3868032626d59662ff73b372b5d584c1d144c53Ben MurdochConfig* Item::AsConfig() { return NULL; }
19d3868032626d59662ff73b372b5d584c1d144c53Ben Murdochconst Config* Item::AsConfig() const { return NULL; }
20d3868032626d59662ff73b372b5d584c1d144c53Ben MurdochTarget* Item::AsTarget() { return NULL; }
21d3868032626d59662ff73b372b5d584c1d144c53Ben Murdochconst Target* Item::AsTarget() const { return NULL; }
22d3868032626d59662ff73b372b5d584c1d144c53Ben MurdochToolchain* Item::AsToolchain() { return NULL; }
23d3868032626d59662ff73b372b5d584c1d144c53Ben Murdochconst Toolchain* Item::AsToolchain() const { return NULL; }
24d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
25d3868032626d59662ff73b372b5d584c1d144c53Ben Murdochstd::string Item::GetItemTypeName() const {
26d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  if (AsConfig())
27d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    return "config";
28d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  if (AsTarget())
29d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    return "target";
30d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  if (AsToolchain())
31d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    return "toolchain";
32d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  NOTREACHED();
33d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  return "this thing that I have no idea what it is";
34d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch}
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccibool Item::OnResolved(Err* err) {
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return true;
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
39