// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. package org.jetbrains.kotlin.js.backend.ast; import org.jetbrains.annotations.NotNull; import java.util.*; public class JsProgramFragment { private final JsScope scope; private final List<JsImportedModule> importedModules = new ArrayList<>(); private final Map<String, JsExpression> imports = new LinkedHashMap<>(); private final JsGlobalBlock declarationBlock = new JsGlobalBlock(); private final JsGlobalBlock exportBlock = new JsGlobalBlock(); private final JsGlobalBlock initializerBlock = new JsGlobalBlock(); private final List<JsNameBinding> nameBindings = new ArrayList<>(); private final Map<JsName, JsClassModel> classes = new LinkedHashMap<>(); private final Map<String, JsExpression> inlineModuleMap = new LinkedHashMap<>(); public JsProgramFragment(@NotNull JsScope scope) { this.scope = scope; } @NotNull public JsScope getScope() { return scope; } @NotNull public List<JsImportedModule> getImportedModules() { return importedModules; } @NotNull public Map<String, JsExpression> getImports() { return imports; } @NotNull public JsGlobalBlock getDeclarationBlock() { return declarationBlock; } @NotNull public JsGlobalBlock getExportBlock() { return exportBlock; } @NotNull public JsGlobalBlock getInitializerBlock() { return initializerBlock; } @NotNull public List<JsNameBinding> getNameBindings() { return nameBindings; } @NotNull public Map<JsName, JsClassModel> getClasses() { return classes; } @NotNull public Map<String, JsExpression> getInlineModuleMap() { return inlineModuleMap; } }