16d528ed9Sopenharmony_ci// Copyright (c) 2013 The Chromium Authors. All rights reserved.
26d528ed9Sopenharmony_ci// Use of this source code is governed by a BSD-style license that can be
36d528ed9Sopenharmony_ci// found in the LICENSE file.
46d528ed9Sopenharmony_ci
56d528ed9Sopenharmony_ci#include "gn/item.h"
66d528ed9Sopenharmony_ci
76d528ed9Sopenharmony_ci#include "base/logging.h"
86d528ed9Sopenharmony_ci#include "gn/settings.h"
96d528ed9Sopenharmony_ci#include "gn/build_settings.h"
106d528ed9Sopenharmony_ci
116d528ed9Sopenharmony_ciItem::Item(const Settings* settings,
126d528ed9Sopenharmony_ci           const Label& label,
136d528ed9Sopenharmony_ci           const SourceFileSet& build_dependency_files)
146d528ed9Sopenharmony_ci    : settings_(settings),
156d528ed9Sopenharmony_ci      label_(label),
166d528ed9Sopenharmony_ci      build_dependency_files_(build_dependency_files),
176d528ed9Sopenharmony_ci      defined_from_(nullptr) {
186d528ed9Sopenharmony_ci        component = settings->build_settings()->GetOhosComponent(label.GetUserVisibleName(false));
196d528ed9Sopenharmony_ci      }
206d528ed9Sopenharmony_ci
216d528ed9Sopenharmony_ciItem::~Item() = default;
226d528ed9Sopenharmony_ci
236d528ed9Sopenharmony_ciConfig* Item::AsConfig() {
246d528ed9Sopenharmony_ci  return nullptr;
256d528ed9Sopenharmony_ci}
266d528ed9Sopenharmony_ciconst Config* Item::AsConfig() const {
276d528ed9Sopenharmony_ci  return nullptr;
286d528ed9Sopenharmony_ci}
296d528ed9Sopenharmony_ciPool* Item::AsPool() {
306d528ed9Sopenharmony_ci  return nullptr;
316d528ed9Sopenharmony_ci}
326d528ed9Sopenharmony_ciconst Pool* Item::AsPool() const {
336d528ed9Sopenharmony_ci  return nullptr;
346d528ed9Sopenharmony_ci}
356d528ed9Sopenharmony_ciTarget* Item::AsTarget() {
366d528ed9Sopenharmony_ci  return nullptr;
376d528ed9Sopenharmony_ci}
386d528ed9Sopenharmony_ciconst Target* Item::AsTarget() const {
396d528ed9Sopenharmony_ci  return nullptr;
406d528ed9Sopenharmony_ci}
416d528ed9Sopenharmony_ciToolchain* Item::AsToolchain() {
426d528ed9Sopenharmony_ci  return nullptr;
436d528ed9Sopenharmony_ci}
446d528ed9Sopenharmony_ciconst Toolchain* Item::AsToolchain() const {
456d528ed9Sopenharmony_ci  return nullptr;
466d528ed9Sopenharmony_ci}
476d528ed9Sopenharmony_ci
486d528ed9Sopenharmony_cistd::string Item::GetItemTypeName() const {
496d528ed9Sopenharmony_ci  if (AsConfig())
506d528ed9Sopenharmony_ci    return "config";
516d528ed9Sopenharmony_ci  if (AsTarget())
526d528ed9Sopenharmony_ci    return "target";
536d528ed9Sopenharmony_ci  if (AsToolchain())
546d528ed9Sopenharmony_ci    return "toolchain";
556d528ed9Sopenharmony_ci  if (AsPool())
566d528ed9Sopenharmony_ci    return "pool";
576d528ed9Sopenharmony_ci  NOTREACHED();
586d528ed9Sopenharmony_ci  return "this thing that I have no idea what it is";
596d528ed9Sopenharmony_ci}
606d528ed9Sopenharmony_ci
616d528ed9Sopenharmony_cibool Item::OnResolved(Err* err) {
626d528ed9Sopenharmony_ci  return true;
636d528ed9Sopenharmony_ci}
64