blob: 1d2ab24bbb3e2dc146b1a34e5fc0b61c30035c24 [file] [log] [blame]
// 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.IOException;
/**
* Abstract interface to library source.
*
* TODO(jgw): Consider requiring implementors to intern LibrarySource instances so that users can
* depend upon reference equality to avoid cycles (or require them to use .equals()). As it is,
* there are two pieces of code in {@link DartCompiler} that do this manually, and it's a little
* tricky.
*/
public interface LibrarySource extends Source {
/**
* Answer the {@link LibrarySource} for the path specified in the receiver's
* imports declaration
*
* @param relPath path to the {@link LibrarySource} relative to the receiver
* @return the dart source or <code>null</code> if could not be found
*/
LibrarySource getImportFor(String relPath) throws IOException;
/**
* Answer the {@link DartSource} for the path specified in the receiver's
* sources declaration
*
* @param relPath the path to the {@link DartSource} relative to the receiver
* @return the dart source or <code>null</code> if could not be found
*/
DartSource getSourceFor(String relPath);
}