/* sbt -- Simple Build Tool
* Copyright 2008, 2009 Mark Harrah
*/
package xsbti;
import java.io.File;
public interface AnalysisCallback
{
/** The names of classes that the analyzer should find subclasses of.*/
public String[] superclassNames();
/** Called when the the given superclass could not be found on the classpath by the compiler.*/
public void superclassNotFound(String superclassName);
/** Called before the source at the given location is processed. */
public void beginSource(File source);
/** Called when the a subclass of one of the classes given in superclassNames is
* discovered.*/
public void foundSubclass(File source, String subclassName, String superclassName, boolean isModule);
/** Called to indicate that the source file source depends on the source file
* dependsOn. Note that only source files included in the current compilation will
* passed to this method. Dependencies on classes generated by sources not in the current compilation will
* be passed as class dependencies to the classDependency method.*/
public void sourceDependency(File dependsOn, File source);
/** Called to indicate that the source file source depends on the jar
* jar.*/
public void jarDependency(File jar, File source);
/** Called to indicate that the source file source depends on the class file
* clazz.*/
public void classDependency(File clazz, File source);
/** Called to indicate that the source file source produces a class file at
* module.*/
public void generatedClass(File source, File module);
/** Called after the source at the given location has been processed. */
public void endSource(File sourcePath);
/** Called when a module with a public 'main' method with the right signature is found.*/
public void foundApplication(File source, String className);
public void api(File sourceFile, xsbti.api.Source source);
}