Index: dart/compiler/java/com/google/dart/compiler/ast/LibraryUnit.java |
diff --git a/dart/compiler/java/com/google/dart/compiler/ast/LibraryUnit.java b/dart/compiler/java/com/google/dart/compiler/ast/LibraryUnit.java |
deleted file mode 100644 |
index 9700c84059eec404b3d478e51665a84a624d9b80..0000000000000000000000000000000000000000 |
--- a/dart/compiler/java/com/google/dart/compiler/ast/LibraryUnit.java |
+++ /dev/null |
@@ -1,314 +0,0 @@ |
-// Copyright (c) 2012, 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 com.google.dart.compiler.ast; |
- |
-import com.google.common.base.Objects; |
-import com.google.common.collect.ImmutableList; |
-import com.google.common.collect.Lists; |
-import com.google.common.collect.Sets; |
-import com.google.dart.compiler.DartCompiler; |
-import com.google.dart.compiler.DartCompilerContext; |
-import com.google.dart.compiler.DartSource; |
-import com.google.dart.compiler.LibraryDeps; |
-import com.google.dart.compiler.LibrarySource; |
-import com.google.dart.compiler.resolver.Elements; |
-import com.google.dart.compiler.resolver.LibraryElement; |
- |
-import java.io.IOException; |
-import java.io.Reader; |
-import java.io.Writer; |
-import java.util.Collection; |
-import java.util.LinkedHashSet; |
-import java.util.List; |
-import java.util.Map; |
-import java.util.Set; |
-import java.util.concurrent.ConcurrentSkipListMap; |
- |
-/** |
- * Represents the parsed source from a {@link LibrarySource}. |
- */ |
-public class LibraryUnit { |
- private final LibrarySource libSource; |
- private final LibraryNode selfSourcePath; |
- private final List<LibraryNode> importPaths = Lists.newArrayList(); |
- private final List<LibraryNode> exportPaths = Lists.newArrayList(); |
- private final List<LibraryNode> sourcePaths = Lists.newArrayList(); |
- private final List<LibraryNode> nativePaths = Lists.newArrayList(); |
- |
- private final Map<String, DartUnit> units = new ConcurrentSkipListMap<String, DartUnit>(); |
- private final List<LibraryImport> imports = Lists.newArrayList(); |
- private final List<LibraryExport> exports = Lists.newArrayList(); |
- |
- private final LibraryElement element; |
- |
- private LibraryDeps deps; |
- |
- private LibraryNode entryNode; |
- private DartUnit selfDartUnit; |
- |
- private String name; |
- |
- private DartExpression entryPoint; |
- |
- private int sourceCount; |
- |
- public void setName(String name) { |
- this.name = name; |
- } |
- |
- public String getName() { |
- return name; |
- } |
- |
- public LibraryUnit(LibrarySource libSource) { |
- assert libSource != null; |
- this.libSource = libSource; |
- element = Elements.libraryElement(this); |
- |
- // get the name part of the path, since it needs to be relative |
- // TODO(jbrosenberg): change this to use lazy init |
- // Note: We don't want an encoded relative path. |
- String self = libSource.getUri().getSchemeSpecificPart(); |
- int lastSlash; |
- if ((lastSlash = self.lastIndexOf('/')) > -1) { |
- self = self.substring(lastSlash + 1); |
- } |
- selfSourcePath = new LibraryNode(self); |
- } |
- |
- public void addImportPath(LibraryNode path) { |
- assert path != null; |
- importPaths.add(path); |
- } |
- |
- public void addExportPath(LibraryNode path) { |
- assert path != null; |
- exportPaths.add(path); |
- } |
- |
- public void addSourcePath(LibraryNode path) { |
- assert path != null; |
- sourcePaths.add(path); |
- sourceCount++; |
- } |
- |
- public int getSourceCount() { |
- return sourceCount; |
- } |
- |
- public void addNativePath(LibraryNode path) { |
- assert path != null; |
- nativePaths.add(path); |
- } |
- |
- public void putUnit(DartUnit unit) { |
- unit.setLibrary(this); |
- units.put(unit.getSourceName(), unit); |
- } |
- |
- public DartUnit getUnit(String sourceName) { |
- return units.get(sourceName); |
- } |
- |
- public void addImport(LibraryUnit unit, LibraryNode node) { |
- if (unit != null) { |
- if (node != null) { |
- imports.add(new LibraryImport(unit, node.getPrefix(), node.getCombinators())); |
- } else { |
- imports.add(new LibraryImport(unit, null, ImmutableList.<ImportCombinator> of())); |
- } |
- } |
- } |
- |
- public void addExport(LibraryUnit unit, LibraryNode node) { |
- if (unit != null) { |
- if (node != null) { |
- exports.add(new LibraryExport(node.getSourceInfo(), unit, node.getCombinators())); |
- } |
- } |
- } |
- |
- public Collection<LibraryUnit> getLibrariesWithPrefix(String prefixToMatch) { |
- List<LibraryUnit> result = Lists.newArrayList(); |
- for (LibraryImport libraryImport : imports) { |
- if (Objects.equal(libraryImport.getPrefix(), prefixToMatch)) { |
- result.add(libraryImport.getLibrary()); |
- } |
- } |
- return result; |
- } |
- |
- public LibraryElement getElement() { |
- return element; |
- } |
- |
- public Iterable<DartUnit> getUnits() { |
- return units.values(); |
- } |
- |
- public Iterable<LibraryImport> getImports() { |
- return imports; |
- } |
- |
- public List<LibraryExport> getExports() { |
- return exports; |
- } |
- |
- public Iterable<LibraryUnit> getImportedLibraries() { |
- LinkedHashSet<LibraryUnit> libraries = Sets.newLinkedHashSet(); |
- for (LibraryImport libraryImport : imports) { |
- libraries.add(libraryImport.getLibrary()); |
- } |
- return libraries; |
- } |
- |
- public boolean hasImport(LibraryUnit unit) { |
- for (LibraryImport libraryImport : imports) { |
- if (libraryImport.getPrefix() == null && Objects.equal(libraryImport.getLibrary(), unit)) { |
- return true; |
- } |
- } |
- return false; |
-// return imports.contains(new LibraryImport(unit, null, ImmutableList.<ImportCombinator> of())); |
- } |
- |
- public DartExpression getEntryPoint() { |
- return entryPoint; |
- } |
- |
- public void setEntryPoint(DartExpression entry) { |
- this.entryPoint = entry; |
- } |
- |
- public DartUnit getSelfDartUnit() { |
- return this.selfDartUnit; |
- } |
- |
- public void setSelfDartUnit(DartUnit unit) { |
- this.selfDartUnit = unit; |
- // set DartObsoleteMetadata for LibraryElement |
- if (unit != null) { |
- List<DartDirective> directives = unit.getDirectives(); |
- if (!directives.isEmpty() && directives.get(0) instanceof DartLibraryDirective) { |
- DartLibraryDirective libraryDirective = (DartLibraryDirective) directives.get(0); |
- Elements.setLibraryMetadata(element, libraryDirective.getObsoleteMetadata()); |
- } |
- } |
- } |
- |
- /** |
- * Return a collection of paths to {@link LibrarySource}s upon which this library or application |
- * depends. |
- * |
- * @return the paths (not <code>null</code>, contains no <code>null</code>) |
- */ |
- public Iterable<LibraryNode> getImportPaths() { |
- return importPaths; |
- } |
- |
- public Iterable<LibraryNode> getExportPaths() { |
- return exportPaths; |
- } |
- |
- /** |
- * Return all prefixes used by this library. |
- */ |
- public Set<String> getPrefixes() { |
- Set<String> result = Sets.newTreeSet(); |
- for (LibraryImport libraryImport : imports) { |
- String prefix = libraryImport.getPrefix(); |
- if (prefix != null) { |
- result.add(prefix); |
- } |
- } |
- return result; |
- } |
- |
- /** |
- * Return the path for dart source that corresponds to the same dart file as this library unit. |
- * This is added to the set of sourcePaths for this unit. |
- * |
- * @return the self source path for this unit. |
- */ |
- public LibraryNode getSelfSourcePath() { |
- return selfSourcePath; |
- } |
- |
- /** |
- * Answer the source associated with this unit |
- * |
- * @return the library source (not <code>null</code>) |
- */ |
- public LibrarySource getSource() { |
- return libSource; |
- } |
- |
- /** |
- * Return a collection of paths to {@link DartSource}s that are included in this library or |
- * application. |
- * |
- * @return the paths (not <code>null</code>, contains no <code>null</code>) |
- */ |
- public Iterable<LibraryNode> getSourcePaths() { |
- return sourcePaths; |
- } |
- |
- /** |
- * Returns a collection of paths to native {@link DartSource}s that are included in this library. |
- * |
- * @return the paths (not <code>null</code>, contains no <code>null</code>) |
- */ |
- public Iterable<LibraryNode> getNativePaths() { |
- return nativePaths; |
- } |
- |
- /** |
- * Return the declared entry method, if any |
- * |
- * @return the entry method or <code>null</code> if not defined |
- */ |
- public LibraryNode getEntryNode() { |
- return entryNode; |
- } |
- |
- /** |
- * Set the declared entry method. |
- * |
- * @param libraryNode the entry method or <code>null</code> if none |
- */ |
- public void setEntryNode(LibraryNode libraryNode) { |
- this.entryNode = libraryNode; |
- } |
- |
- /** |
- * Gets the dependencies associated with this library. If no dependencies artifact exists, or the |
- * file is invalid, it will return an empty deps object. |
- */ |
- public LibraryDeps getDeps(DartCompilerContext context) throws IOException { |
- if (deps != null) { |
- return deps; |
- } |
- |
- Reader reader = context.getArtifactReader(libSource, "", DartCompiler.EXTENSION_DEPS); |
- if (reader != null) { |
- deps = LibraryDeps.fromReader(reader); |
- reader.close(); |
- } |
- |
- if (deps == null) { |
- deps = new LibraryDeps(); |
- } |
- return deps; |
- } |
- |
- /** |
- * Writes this library's associated dependencies. |
- */ |
- public void writeDeps(DartCompilerContext context) throws IOException { |
- Writer writer = context.getArtifactWriter(libSource, "", DartCompiler.EXTENSION_DEPS); |
- deps.write(writer); |
- writer.close(); |
- } |
-} |