package xsbti.compile; import java.io.File; import xsbti.Maybe; /** Configures incremental recompilation. */ public interface Setup { /** Provides the Analysis for the given classpath entry.*/ Maybe analysisMap(File file); /** Provides a function to determine if classpath entry `file` contains a given class. * The returned function should generally cache information about `file`, such as the list of entries in a jar. */ DefinesClass definesClass(File file); /** If true, no sources are actually compiled and the Analysis from the previous compilation is returned.*/ boolean skip(); /** The directory used to cache information across compilations. * This directory can be removed to force a full recompilation. * The directory should be unique and not shared between compilations. */ File cacheDirectory(); }