edu.rice.cs.drjava.model.compiler
Interface CompilerInterface

All Known Implementing Classes:
Javac160FilteringCompiler, JavacCompiler, NoCompilerAvailable

public interface CompilerInterface

The minimum interface that a compiler must meet to be used by DrJava.

Version:
$Id: CompilerInterface.java 5395 2010-09-21 15:26:15Z mgricken $

Method Summary
 List<File> additionalBootClassPathForInteractions()
          A compiler can instruct DrJava to include additional elements for the boot class path of the Interactions JVM.
 List<? extends DJError> compile(List<? extends File> files, List<? extends File> classPath, List<? extends File> sourcePath, File destination, List<? extends File> bootClassPath, String sourceVersion, boolean showWarnings)
          Compile the given files.
 String getDescription()
          Returns a one-line description of the compiler (such as the name and file location)
 FileFilter getFileFilter()
          Return a file filter that can be used to open files this compiler supports.
 Set<String> getKeywordsForFile(File f)
          Return the set of keywords that should be highlighted in the specified file.
 String getName()
          Returns the name of this compiler, appropriate to show to the user.
 String getOpenAllFilesInFolderExtension()
          Return the extension of the files that should be opened with the "Open Folder..." command.
 Set<String> getSourceFileExtensions()
          Return the set of source file extensions that this compiler supports.
 String getSuggestedFileExtension()
          Return the suggested file extension that will be appended to a file without extension.
 boolean isAvailable()
          Indicates whether this compiler is actually available.
 boolean isSourceFileForThisCompiler(File f)
          Return true if the specified file is a source file for this compiler.
 boolean supportsLanguageLevels()
          Return true if this compiler can be used in conjunction with the language level facility.
 String toString()
          String to display in a combo box (generally getName())
 String transformCommands(String interactionsString)
          Transform the command line to be interpreted into something the Interactions JVM can use.
 JavaVersion version()
          The latest version of Java supported by the compiler
 

Method Detail

isAvailable

boolean isAvailable()
Indicates whether this compiler is actually available. As in: Is it installed and located? This method should load the compiler class, which should hopefully prove whether the class can load. If this method returns true, the compile(java.util.List, java.util.List, java.util.List, java.io.File, java.util.List, java.lang.String, boolean) method should not fail due to class not being found.


compile

List<? extends DJError> compile(List<? extends File> files,
                                List<? extends File> classPath,
                                List<? extends File> sourcePath,
                                File destination,
                                List<? extends File> bootClassPath,
                                String sourceVersion,
                                boolean showWarnings)
Compile the given files.

Parameters:
files - Source files to compile.
classPath - Support jars or directories that should be on the classpath. If null, the default is used.
sourcePath - Location of additional sources to be compiled on-demand. If null, the default is used.
destination - Location (directory) for compiled classes. If null, the default in-place location is used.
bootClassPath - The bootclasspath (contains Java API jars or directories); should be consistent with sourceVersion If null, the default is used.
sourceVersion - The language version of the sources. Should be consistent with bootClassPath. If null, the default is used.
showWarnings - Whether compiler warnings should be shown or ignored.
Returns:
Errors that occurred. If no errors, should be zero length (not null).

version

JavaVersion version()
The latest version of Java supported by the compiler


getName

String getName()
Returns the name of this compiler, appropriate to show to the user.


getDescription

String getDescription()
Returns a one-line description of the compiler (such as the name and file location)


toString

String toString()
String to display in a combo box (generally getName())

Overrides:
toString in class Object

additionalBootClassPathForInteractions

List<File> additionalBootClassPathForInteractions()
A compiler can instruct DrJava to include additional elements for the boot class path of the Interactions JVM.


transformCommands

String transformCommands(String interactionsString)
Transform the command line to be interpreted into something the Interactions JVM can use. This replaces "java MyClass a b c" with Java code to call MyClass.main(new String[]{"a","b","c"}). "import MyClass" is not handled here. transformCommands should support at least "run", "java" and "applet".

Parameters:
interactionsString - unprocessed command line
Returns:
command line with commands transformed

isSourceFileForThisCompiler

boolean isSourceFileForThisCompiler(File f)
Return true if the specified file is a source file for this compiler.

Parameters:
f - file to check if it is a source file
Returns:
true if the specified file is a source file for this compiler.

getSourceFileExtensions

Set<String> getSourceFileExtensions()
Return the set of source file extensions that this compiler supports.

Returns:
the set of source file extensions that this compiler supports.

getSuggestedFileExtension

String getSuggestedFileExtension()
Return the suggested file extension that will be appended to a file without extension.

Returns:
the suggested file extension

getFileFilter

FileFilter getFileFilter()
Return a file filter that can be used to open files this compiler supports.

Returns:
file filter for appropriate source files for this compiler.

getOpenAllFilesInFolderExtension

String getOpenAllFilesInFolderExtension()
Return the extension of the files that should be opened with the "Open Folder..." command.

Returns:
file extension for the "Open Folder..." command for this compiler.

getKeywordsForFile

Set<String> getKeywordsForFile(File f)
Return the set of keywords that should be highlighted in the specified file.

Parameters:
f - file for which to return the keywords
Returns:
the set of keywords that should be highlighted in the specified file.

supportsLanguageLevels

boolean supportsLanguageLevels()
Return true if this compiler can be used in conjunction with the language level facility.

Returns:
true if language levels can be used.