CompilerAdapterFactory (Apache Ant API)
Date: 2017-02-02

org.apache.tools.ant.taskdefs.compilers

## Class CompilerAdapterFactory

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

-     public final class CompilerAdapterFactory
      extends java.lang.Object

  Creates the necessary compiler adapter, given basic criteria.
  Since:
    Ant 1.3

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static CompilerAdapter` | `getCompiler(java.lang.String compilerType, Task task)` Based on the parameter passed in, this method creates the necessary factory desired.
    `static CompilerAdapter` | `getCompiler(java.lang.String compilerType, Task task, Path classpath)` Based on the parameter passed in, this method creates the necessary factory desired.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### getCompiler

          public static CompilerAdapter getCompiler(java.lang.String compilerType,
                                                    Task task)
                                             throws BuildException

      Based on the parameter passed in, this method creates the necessary factory desired. The current mapping for compiler names are as follows:
      - jikes = jikes compiler
      - classic, javac1.1, javac1.2 = the standard compiler from JDK 1.1/1.2
      - modern, javac1.3, javac1.4, javac1.5 = the compiler of JDK 1.3+
      - jvc, microsoft = the command line compiler from Microsoft's SDK for Java / Visual J++
      - kjc = the kopi compiler
      - gcj = the gcj compiler from gcc
      - sj, symantec = the Symantec Java compiler
      - a fully qualified classname = the name of a compiler adapter
      Parameters:
        `compilerType` - either the name of the desired compiler, or the full classname of the compiler's adapter.
        `task` - a task to log through.
      Returns:
        the compiler adapter
      Throws:
        `BuildException` - if the compiler type could not be resolved into a compiler adapter.

    - #### getCompiler

          public static CompilerAdapter getCompiler(java.lang.String compilerType,
                                                    Task task,
                                                    Path classpath)
                                             throws BuildException

      Based on the parameter passed in, this method creates the necessary factory desired. The current mapping for compiler names are as follows:
      - jikes = jikes compiler
      - classic, javac1.1, javac1.2 = the standard compiler from JDK 1.1/1.2
      - modern, javac1.3, javac1.4, javac1.5 = the compiler of JDK 1.3+
      - jvc, microsoft = the command line compiler from Microsoft's SDK for Java / Visual J++
      - kjc = the kopi compiler
      - gcj = the gcj compiler from gcc
      - sj, symantec = the Symantec Java compiler
      - a fully qualified classname = the name of a compiler adapter
      Parameters:
        `compilerType` - either the name of the desired compiler, or the full classname of the compiler's adapter.
        `task` - a task to log through.
        `classpath` - the classpath to use when looking up an adapter class
      Returns:
        the compiler adapter
      Throws:
        `BuildException` - if the compiler type could not be resolved into a compiler adapter.
      Since:
        Ant 1.8.0