| Index: dart/compiler/javatests/com/google/dart/compiler/MockBundleLibrarySource.java
|
| diff --git a/dart/compiler/javatests/com/google/dart/compiler/MockBundleLibrarySource.java b/dart/compiler/javatests/com/google/dart/compiler/MockBundleLibrarySource.java
|
| deleted file mode 100644
|
| index fbf66f18d9828c2d5e796629192742d20a828243..0000000000000000000000000000000000000000
|
| --- a/dart/compiler/javatests/com/google/dart/compiler/MockBundleLibrarySource.java
|
| +++ /dev/null
|
| @@ -1,187 +0,0 @@
|
| -// 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 com.google.dart.compiler;
|
| -
|
| -import java.io.FileNotFoundException;
|
| -import java.io.IOException;
|
| -import java.io.Reader;
|
| -import java.net.URI;
|
| -import java.net.URISyntaxException;
|
| -import java.net.URL;
|
| -import java.util.Date;
|
| -import java.util.HashMap;
|
| -import java.util.HashSet;
|
| -import java.util.Map;
|
| -import java.util.Set;
|
| -
|
| -/**
|
| - * A mock application source that uses resources bundled in the classpath, along with methods for
|
| - * remapping sources and modifying their timestamps.
|
| - */
|
| -public class MockBundleLibrarySource extends UrlLibrarySource implements LibrarySource {
|
| -
|
| - private class NonexistentDartSource implements DartSource {
|
| - private final String relPath;
|
| -
|
| - public NonexistentDartSource(String relPath) {
|
| - this.relPath = relPath;
|
| - }
|
| -
|
| - @Override
|
| - public boolean exists() {
|
| - return false;
|
| - }
|
| -
|
| - @Override
|
| - public long getLastModified() {
|
| - return 0;
|
| - }
|
| -
|
| - @Override
|
| - public String getName() {
|
| - return relPath;
|
| - }
|
| -
|
| - @Override
|
| - public Reader getSourceReader() throws IOException {
|
| - throw new FileNotFoundException();
|
| - }
|
| -
|
| - @Override
|
| - public String getUniqueIdentifier() {
|
| - return relPath;
|
| - }
|
| -
|
| - @Override
|
| - public URI getUri() {
|
| - try {
|
| - return new URI(relPath);
|
| - } catch (URISyntaxException e) {
|
| - throw new AssertionError(e.getMessage());
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public LibrarySource getLibrary() {
|
| - return MockBundleLibrarySource.this;
|
| - }
|
| -
|
| - @Override
|
| - public String getRelativePath() {
|
| - return relPath;
|
| - }
|
| - }
|
| -
|
| - private final String basePath;
|
| - private final ClassLoader loader;
|
| - private final String libName;
|
| -
|
| - private final Map<String, MockBundleLibrarySource> imports =
|
| - new HashMap<String, MockBundleLibrarySource>();
|
| -
|
| - /**
|
| - * Source remappings. Each key identifies the name of a source file that will be remapped to an
|
| - * alternate source file in {@link #getSourceFor(String)}.
|
| - */
|
| - private final Map<String, String> sourceRemapping = new HashMap<String, String>();
|
| - private final Set<String> sourceTimestamps = new HashSet<String>();
|
| -
|
| - public MockBundleLibrarySource(ClassLoader loader, String basePath, String libName)
|
| - throws URISyntaxException {
|
| - this(loader, basePath, libName, libName);
|
| - }
|
| -
|
| - public MockBundleLibrarySource(ClassLoader loader, String basePath, String libName,
|
| - String altName) throws URISyntaxException {
|
| - super(loader.getResource(basePath + libName).toURI());
|
| - this.loader = loader;
|
| - this.basePath = basePath;
|
| - this.libName = altName;
|
| - }
|
| -
|
| - @Override
|
| - public MockBundleLibrarySource getImportFor(String relPath) {
|
| - MockBundleLibrarySource libSrc = imports.get(relPath);
|
| - if (libSrc == null) {
|
| - try {
|
| - libSrc = new MockBundleLibrarySource(loader, basePath, relPath);
|
| - } catch (URISyntaxException e) {
|
| - throw new AssertionError();
|
| - }
|
| - imports.put(relPath, libSrc);
|
| - }
|
| - return libSrc;
|
| - }
|
| -
|
| - @Override
|
| - public DartSource getSourceFor(final String relPath) {
|
| - String remap = sourceRemapping.get(relPath);
|
| - final boolean touched = sourceTimestamps.contains(relPath);
|
| -
|
| - String fullPath = basePath + ((remap != null) ? remap : relPath);
|
| - URI uri;
|
| - try {
|
| - URL url = loader.getResource(fullPath);
|
| - if (url == null) {
|
| - return new NonexistentDartSource(relPath);
|
| - }
|
| -
|
| - uri = url.toURI();
|
| - } catch (URISyntaxException e) {
|
| - throw new AssertionError();
|
| - }
|
| -
|
| - return new UrlDartSource(uri, relPath, this) {
|
| - @Override
|
| - public long getLastModified() {
|
| - if (touched) {
|
| - return new Date().getTime();
|
| - }
|
| - return super.getLastModified();
|
| - }
|
| -
|
| - @Override
|
| - public String getName() {
|
| - return relPath;
|
| - }
|
| - };
|
| - }
|
| -
|
| - @Override
|
| - public String getName() {
|
| - return libName;
|
| - }
|
| -
|
| - /**
|
| - * Remaps the given source to an alternate. This allows testing of changes to source contents.
|
| - * Note that you'll still need to call {@link #touchSource(String)} to cause it to be recompiled.
|
| - */
|
| - public void remapSource(String relPath, String remappedRelPath) {
|
| - sourceRemapping.put(relPath, remappedRelPath);
|
| - touchSource(relPath);
|
| - }
|
| -
|
| - /**
|
| - * Removes the given source. Any attempt to read it will result in an NPE.
|
| - */
|
| - public void removeSource(String relPath) {
|
| - sourceRemapping.put(relPath, "does/not/exist");
|
| - }
|
| -
|
| - /**
|
| - * Touches the given source file, forcing a recompile.
|
| - */
|
| - public void touchSource(String relPath) {
|
| - sourceTimestamps.add(relPath);
|
| - }
|
| -
|
| - /**
|
| - * Clears all remappings and source timestamps.
|
| - */
|
| - public void resetRemappings() {
|
| - sourceRemapping.clear();
|
| - sourceTimestamps.clear();
|
| - }
|
| -}
|
|
|