2009-08-17 16:51:43 +02:00
|
|
|
/* sbt -- Simple Build Tool
|
|
|
|
|
* Copyright 2008, 2009 Mark Harrah
|
|
|
|
|
*/
|
|
|
|
|
package xsbti;
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
|
|
|
|
|
public interface AnalysisCallback
|
|
|
|
|
{
|
|
|
|
|
/** Called to indicate that the source file <code>source</code> depends on the source file
|
2009-08-19 05:25:34 +02:00
|
|
|
* <code>dependsOn</code>. 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
|
2013-04-27 04:35:27 +02:00
|
|
|
* be passed as class dependencies to the classDependency method.
|
|
|
|
|
* If <code>publicInherited</code> is true, this dependency is a result of inheritance by a
|
|
|
|
|
* template accessible outside of the source file. */
|
|
|
|
|
public void sourceDependency(File dependsOn, File source, boolean publicInherited);
|
2010-09-18 03:38:40 +02:00
|
|
|
/** Called to indicate that the source file <code>source</code> depends on the top-level
|
2013-04-27 04:35:27 +02:00
|
|
|
* class named <code>name</code> from class or jar file <code>binary</code>.
|
|
|
|
|
* If <code>publicInherited</code> is true, this dependency is a result of inheritance by a
|
|
|
|
|
* template accessible outside of the source file. */
|
|
|
|
|
public void binaryDependency(File binary, String name, File source, boolean publicInherited);
|
2009-08-17 16:51:43 +02:00
|
|
|
/** Called to indicate that the source file <code>source</code> produces a class file at
|
2011-07-18 23:14:22 +02:00
|
|
|
* <code>module</code> contain class <code>name</code>.*/
|
|
|
|
|
public void generatedClass(File source, File module, String name);
|
2009-11-23 04:54:17 +01:00
|
|
|
/** Called when the public API of a source file is extracted. */
|
2011-06-01 08:19:46 +02:00
|
|
|
public void api(File sourceFile, xsbti.api.SourceAPI source);
|
2013-12-03 12:27:29 +01:00
|
|
|
public void usedName(File sourceFile, String names);
|
2012-03-18 00:31:55 +01:00
|
|
|
/** Provides problems discovered during compilation. These may be reported (logged) or unreported.
|
|
|
|
|
* Unreported problems are usually unreported because reporting was not enabled via a command line switch. */
|
2012-05-06 20:15:03 +02:00
|
|
|
public void problem(String what, Position pos, String msg, Severity severity, boolean reported);
|
2013-11-19 21:16:06 +01:00
|
|
|
/**
|
2013-11-28 13:42:39 +01:00
|
|
|
* Determines whether method calls through this interface should be interpreted as serving
|
|
|
|
|
* name hashing algorithm needs in given compiler run.
|
|
|
|
|
*
|
|
|
|
|
* In particular, it indicates whether member reference and inheritance dependencies should be
|
|
|
|
|
* extracted.
|
2013-11-19 21:16:06 +01:00
|
|
|
*
|
|
|
|
|
* As the signature suggests, this method's implementation is meant to be side-effect free. It's added
|
|
|
|
|
* to AnalysisCallback because it indicates how other callback calls should be interpreted by both
|
|
|
|
|
* implementation of AnalysisCallback and it's clients.
|
|
|
|
|
*
|
|
|
|
|
* NOTE: This method is an implementation detail and can be removed at any point without deprecation.
|
|
|
|
|
* Do not depend on it, please.
|
|
|
|
|
*/
|
2013-11-28 13:42:39 +01:00
|
|
|
public boolean nameHashing();
|
2009-08-17 16:51:43 +02:00
|
|
|
}
|