/* 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); }