// 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;
import java.io.
IOException;
import java.io.
Reader;
import java.net.
URI;
import java.util.
Date;
/**
* Abstract interface to a source file.
*/
public interface
Source {
/**
* Determines whether the given source exists.
*/
boolean
exists();
/**
* Returns the last-modified timestamp for this source, using the same units as
* {@link Date#getTime()}.
*/
long
getLastModified();
/**
* Gets the name of this source.
*/
String getName();
/**
* Gets a reader for the dart file's source code. The caller is responsible for closing the
* returned reader.
*/
Reader getSourceReader() throws
IOException;
/**
* Gets the identifier for this source. This is used to uniquely identify the
* source, but should not be used to obtain the source content. Use
* {@link #getSourceReader()} to obtain the source content.
*/
URI getUri();
}