org.apache.tools.ant.taskdefs.compilers
Class DefaultCompilerAdapter

java.lang.Object
  extended by org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter
All Implemented Interfaces:
CompilerAdapter
Direct Known Subclasses:
AptCompilerAdapter, AptExternalCompilerAdapter, Gcj, Javac12, Javac13, JavacExternal, Jikes, Jvc, Kjc, Sj

public abstract class DefaultCompilerAdapter
extends java.lang.Object
implements CompilerAdapter

This is the default implementation for the CompilerAdapter interface. Currently, this is a cut-and-paste of the original javac task.

Since:
Ant 1.3

Field Summary
protected  Javac attributes
           
protected  Path bootclasspath
           
protected  Path compileClasspath
           
protected  java.io.File[] compileList
           
protected  Path compileSourcepath
           
protected  boolean debug
           
protected  boolean depend
           
protected  boolean deprecation
           
protected  java.io.File destDir
           
protected  java.lang.String encoding
           
protected  Path extdirs
           
protected  boolean includeAntRuntime
           
protected  boolean includeJavaRuntime
           
protected  Location location
           
protected static java.lang.String lSep
           
protected  java.lang.String memoryInitialSize
           
protected  java.lang.String memoryMaximumSize
           
protected  boolean optimize
           
protected  Project project
           
protected  Path src
           
protected  java.lang.String target
           
protected  boolean verbose
           
 
Constructor Summary
DefaultCompilerAdapter()
           
 
Method Summary
protected  void addCurrentCompilerArgs(Commandline cmd)
          Adds the command line arguments specific to the current implementation.
protected  void addExtdirsToClasspath(Path classpath)
          Deprecated. since 1.5.x. Use org.apache.tools.ant.types.Path#addExtdirs instead.
protected  boolean assumeJava11()
          Shall we assume JDK 1.1 command line switches?
protected  boolean assumeJava12()
          Shall we assume JDK 1.2 command line switches?
protected  boolean assumeJava13()
          Shall we assume JDK 1.3 command line switches?
protected  boolean assumeJava14()
          Shall we assume JDK 1.4 command line switches?
protected  boolean assumeJava15()
          Shall we assume JDK 1.5 command line switches?
protected  boolean assumeJava16()
          Shall we assume JDK 1.6 command line switches?
protected  int executeExternalCompile(java.lang.String[] args, int firstFileName)
          Do the compile with the specified arguments.
protected  int executeExternalCompile(java.lang.String[] args, int firstFileName, boolean quoteFiles)
          Do the compile with the specified arguments.
protected  Path getBootClassPath()
          Combines a user specified bootclasspath with the system bootclasspath taking build.sysclasspath into account.
protected  Path getCompileClasspath()
          Builds the compilation classpath.
 Javac getJavac()
          Get the Javac task instance associated with this compiler adapter
protected  java.lang.String getNoDebugArgument()
          The argument the compiler wants to see if the debug attribute has been set to false.
protected  Project getProject()
          Get the project this compiler adapter was created in.
protected  void logAndAddFilesToCompile(Commandline cmd)
          Logs the compilation parameters, adds the files to compile and logs the "niceSourceList"
 void setJavac(Javac attributes)
          Set the Javac instance which contains the configured compilation attributes.
protected  Commandline setupJavacCommand()
          Set up the command line.
protected  Commandline setupJavacCommand(boolean debugLevelCheck)
          Does the command line argument processing for classic and adds the files to compile as well.
protected  Commandline setupJavacCommandlineSwitches(Commandline cmd)
          Get the command line arguments for the switches.
protected  Commandline setupJavacCommandlineSwitches(Commandline cmd, boolean useDebugLevel)
          Does the command line argument processing common to classic and modern.
protected  Commandline setupModernJavacCommand()
          Does the command line argument processing for modern and adds the files to compile as well.
protected  Commandline setupModernJavacCommandlineSwitches(Commandline cmd)
          Does the command line argument processing for modern.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.tools.ant.taskdefs.compilers.CompilerAdapter
execute
 

Field Detail

src

protected Path src

destDir

protected java.io.File destDir

encoding

protected java.lang.String encoding

debug

protected boolean debug

optimize

protected boolean optimize

deprecation

protected boolean deprecation

depend

protected boolean depend

verbose

protected boolean verbose

target

protected java.lang.String target

bootclasspath

protected Path bootclasspath

extdirs

protected Path extdirs

compileClasspath

protected Path compileClasspath

compileSourcepath

protected Path compileSourcepath

project

protected Project project

location

protected Location location

includeAntRuntime

protected boolean includeAntRuntime

includeJavaRuntime

protected boolean includeJavaRuntime

memoryInitialSize

protected java.lang.String memoryInitialSize

memoryMaximumSize

protected java.lang.String memoryMaximumSize

compileList

protected java.io.File[] compileList

attributes

protected Javac attributes

lSep

protected static final java.lang.String lSep
Constructor Detail

DefaultCompilerAdapter

public DefaultCompilerAdapter()
Method Detail

setJavac

public void setJavac(Javac attributes)
Set the Javac instance which contains the configured compilation attributes.

Specified by:
setJavac in interface CompilerAdapter
Parameters:
attributes - a configured Javac task.

getJavac

public Javac getJavac()
Get the Javac task instance associated with this compiler adapter

Returns:
the configured Javac task instance used by this adapter.

getProject

protected Project getProject()
Get the project this compiler adapter was created in.

Returns:
the owner project
Since:
Ant 1.6

getCompileClasspath

protected Path getCompileClasspath()
Builds the compilation classpath.

Returns:
the compilation class path

setupJavacCommandlineSwitches

protected Commandline setupJavacCommandlineSwitches(Commandline cmd)
Get the command line arguments for the switches.

Parameters:
cmd - the command line
Returns:
the command line

setupJavacCommandlineSwitches

protected Commandline setupJavacCommandlineSwitches(Commandline cmd,
                                                    boolean useDebugLevel)
Does the command line argument processing common to classic and modern. Doesn't add the files to compile.

Parameters:
cmd - the command line
useDebugLevel - if true set set the debug level with the -g switch
Returns:
the command line

setupModernJavacCommandlineSwitches

protected Commandline setupModernJavacCommandlineSwitches(Commandline cmd)
Does the command line argument processing for modern. Doesn't add the files to compile.

Parameters:
cmd - the command line
Returns:
the command line

setupModernJavacCommand

protected Commandline setupModernJavacCommand()
Does the command line argument processing for modern and adds the files to compile as well.

Returns:
the command line

setupJavacCommand

protected Commandline setupJavacCommand()
Set up the command line.

Returns:
the command line

setupJavacCommand

protected Commandline setupJavacCommand(boolean debugLevelCheck)
Does the command line argument processing for classic and adds the files to compile as well.

Parameters:
debugLevelCheck - if true set the debug level with the -g switch
Returns:
the command line

logAndAddFilesToCompile

protected void logAndAddFilesToCompile(Commandline cmd)
Logs the compilation parameters, adds the files to compile and logs the "niceSourceList"

Parameters:
cmd - the command line

executeExternalCompile

protected int executeExternalCompile(java.lang.String[] args,
                                     int firstFileName)
Do the compile with the specified arguments.

Parameters:
args - - arguments to pass to process on command line
firstFileName - - index of the first source file in args, if the index is negative, no temporary file will ever be created, but this may hit the command line length limit on your system.
Returns:
the exit code of the compilation

executeExternalCompile

protected int executeExternalCompile(java.lang.String[] args,
                                     int firstFileName,
                                     boolean quoteFiles)
Do the compile with the specified arguments.

Parameters:
args - - arguments to pass to process on command line
firstFileName - - index of the first source file in args, if the index is negative, no temporary file will ever be created, but this may hit the command line length limit on your system.
quoteFiles - - if set to true, filenames containing spaces will be quoted when they appear in the external file. This is necessary when running JDK 1.4's javac and probably others.
Returns:
the exit code of the compilation
Since:
Ant 1.6

addExtdirsToClasspath

protected void addExtdirsToClasspath(Path classpath)
Deprecated. since 1.5.x. Use org.apache.tools.ant.types.Path#addExtdirs instead.

Add extdirs to classpath

Parameters:
classpath - the classpath to use

addCurrentCompilerArgs

protected void addCurrentCompilerArgs(Commandline cmd)
Adds the command line arguments specific to the current implementation.

Parameters:
cmd - the command line to use

assumeJava11

protected boolean assumeJava11()
Shall we assume JDK 1.1 command line switches?

Returns:
true if jdk 1.1
Since:
Ant 1.5

assumeJava12

protected boolean assumeJava12()
Shall we assume JDK 1.2 command line switches?

Returns:
true if jdk 1.2
Since:
Ant 1.5

assumeJava13

protected boolean assumeJava13()
Shall we assume JDK 1.3 command line switches?

Returns:
true if jdk 1.3
Since:
Ant 1.5

assumeJava14

protected boolean assumeJava14()
Shall we assume JDK 1.4 command line switches?

Returns:
true if jdk 1.4
Since:
Ant 1.6.3

assumeJava15

protected boolean assumeJava15()
Shall we assume JDK 1.5 command line switches?

Returns:
true if JDK 1.5
Since:
Ant 1.6.3

assumeJava16

protected boolean assumeJava16()
Shall we assume JDK 1.6 command line switches?

Returns:
true if JDK 1.6
Since:
Ant 1.7

getBootClassPath

protected Path getBootClassPath()
Combines a user specified bootclasspath with the system bootclasspath taking build.sysclasspath into account.

Returns:
a non-null Path instance that combines the user specified and the system bootclasspath.

getNoDebugArgument

protected java.lang.String getNoDebugArgument()
The argument the compiler wants to see if the debug attribute has been set to false.

A return value of null means no argument at all.

Returns:
"-g:none" unless we expect to invoke a JDK 1.1 compiler.
Since:
Ant 1.6.3