edu.rice.cs.drjava.model.compiler
Class JavacCompiler

java.lang.Object
  extended by edu.rice.cs.drjava.model.compiler.JavacCompiler
All Implemented Interfaces:
CompilerInterface

public abstract class JavacCompiler
extends Object
implements CompilerInterface

An abstract parent for all javac-based compiler interfaces. Manages the auxiliary naming methods. To support loading via reflection, all subclasses are assumed to have a public constructor with a matching signature.

Version:
$Id$

Field Summary
protected  List<? extends File> _defaultBootClassPath
           
 
Constructor Summary
protected JavacCompiler(JavaVersion.FullVersion version, String location, List<? extends File> defaultBootClassPath)
           
 
Method Summary
abstract  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)
 String getName()
          Returns the name of this compiler, appropriate to show to the user.
abstract  boolean isAvailable()
          Indicates whether this compiler is actually available.
 String toString()
          String to display in a combo box (generally getName())
 JavaVersion version()
          The latest version of Java supported by the compiler
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_defaultBootClassPath

protected List<? extends File> _defaultBootClassPath
Constructor Detail

JavacCompiler

protected JavacCompiler(JavaVersion.FullVersion version,
                        String location,
                        List<? extends File> defaultBootClassPath)
Method Detail

isAvailable

public abstract boolean isAvailable()
Description copied from interface: CompilerInterface
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 CompilerInterface.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.

Specified by:
isAvailable in interface CompilerInterface

compile

public abstract 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)
Description copied from interface: CompilerInterface
Compile the given files.

Specified by:
compile in interface CompilerInterface
Parameters:
files - Source files to compile.
classPath - Support jars or directories that should be on the classpath. If @code{null}, the default is used.
sourcePath - Location of additional sources to be compiled on-demand. If @code{null}, the default is used.
destination - Location (directory) for compiled classes. If @code{null}, the default in-place location is used.
bootClassPath - The bootclasspath (contains Java API jars or directories); should be consistent with @code{sourceVersion} If @code{null}, the default is used.
sourceVersion - The language version of the sources. Should be consistent with @code{bootClassPath}. If @code{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

public JavaVersion version()
Description copied from interface: CompilerInterface
The latest version of Java supported by the compiler

Specified by:
version in interface CompilerInterface

getName

public String getName()
Description copied from interface: CompilerInterface
Returns the name of this compiler, appropriate to show to the user.

Specified by:
getName in interface CompilerInterface

getDescription

public String getDescription()
Description copied from interface: CompilerInterface
Returns a one-line description of the compiler (such as the name and file location)

Specified by:
getDescription in interface CompilerInterface

toString

public String toString()
Description copied from interface: CompilerInterface
String to display in a combo box (generally getName())

Specified by:
toString in interface CompilerInterface
Overrides:
toString in class Object