DefaultCompilerAdapter (Apache Ant API)
Date: 2018-07-10

org.apache.tools.ant.taskdefs.compilers

## Class DefaultCompilerAdapter

- java.lang.Object
- - org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter

- All Implemented Interfaces:
    CompilerAdapter, CompilerAdapterExtension
  Direct Known Subclasses:
    AptCompilerAdapter, AptExternalCompilerAdapter, Gcj, Javac12, Javac13, JavacExternal, Jikes, Jvc, Kjc, Sj

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

  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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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 Path` | `modulepath`
    `protected Path` | `moduleSourcepath`
    `protected boolean` | `optimize`
    `protected Project` | `project`
    `protected java.lang.String` | `release`
    `protected Path` | `src`
    `protected java.lang.String` | `target`
    `protected Path` | `upgrademodulepath`
    `protected boolean` | `verbose`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultCompilerAdapter()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `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 boolean` | `assumeJava17()` Shall we assume JDK 1.7 command line switches?
    `protected boolean` | `assumeJava18()` Shall we assume JDK 1.8 command line switches?
    `protected boolean` | `assumeJava19()` Deprecated. use #assumeJava9 instead
    `protected boolean` | `assumeJava9()` Shall we assume JDK 9 command line switches?
    `protected boolean` | `assumeJava9Plus()` Shall we assume JDK 9+ 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 Path` | `getModulepath()` Builds the modulepath.
    `protected Path` | `getModulesourcepath()` Builds the modulesourcepath for multi module compilation.
    `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.
    `java.lang.String[]` | `getSupportedFileExtensions()` By default, only recognize files with a Java extension, but specialized compilers can recognize multiple kinds of files.
    `protected Path` | `getUpgrademodulepath()` Builds the upgrademodulepath.
    `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

    - #### release

          protected java.lang.String release

    - #### bootclasspath

          protected Path bootclasspath

    - #### extdirs

          protected Path extdirs

    - #### compileClasspath

          protected Path compileClasspath

    - #### modulepath

          protected Path modulepath

    - #### upgrademodulepath

          protected Path upgrademodulepath

    - #### compileSourcepath

          protected Path compileSourcepath

    - #### moduleSourcepath

          protected Path moduleSourcepath

    - #### 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.

    - #### getSupportedFileExtensions

          public java.lang.String[] getSupportedFileExtensions()

      By default, only recognize files with a Java extension, but specialized compilers can recognize multiple kinds of files.
      Specified by:
        `getSupportedFileExtensions` in interface `CompilerAdapterExtension`
      Returns:
        list of source file extensions recognized by this compiler 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

    - #### getModulepath

          protected Path getModulepath()

      Builds the modulepath.
      Returns:
        the modulepath
      Since:
        1.9.7

    - #### getUpgrademodulepath

          protected Path getUpgrademodulepath()

      Builds the upgrademodulepath.
      Returns:
        the upgrademodulepath
      Since:
        1.9.7

    - #### getModulesourcepath

          protected Path getModulesourcepath()

      Builds the modulesourcepath for multi module compilation.
      Returns:
        the modulesourcepath
      Since:
        1.9.7

    - #### 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.

      The working directory if the executed process will be the project's base directory.

      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

          @Deprecated
          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

    - #### assumeJava17

          protected boolean assumeJava17()

      Shall we assume JDK 1.7 command line switches?
      Returns:
        true if JDK 1.7
      Since:
        Ant 1.8.2

    - #### assumeJava18

          protected boolean assumeJava18()

      Shall we assume JDK 1.8 command line switches?
      Returns:
        true if JDK 1.8
      Since:
        Ant 1.8.3

    - #### assumeJava19

          protected boolean assumeJava19()

      Deprecated. use #assumeJava9 instead
      Shall we assume JDK 9 command line switches?
      Returns:
        true if JDK 9
      Since:
        Ant 1.9.4

    - #### assumeJava9

          protected boolean assumeJava9()

      Shall we assume JDK 9 command line switches?
      Returns:
        true if JDK 9
      Since:
        Ant 1.9.8

    - #### assumeJava9Plus

          protected boolean assumeJava9Plus()

      Shall we assume JDK 9+ command line switches?
      Returns:
        true if JDK 9+
      Since:
        Ant 1.9.10

    - #### 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