Package 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

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `COMPILER_CLASSIC` |
    `static java.lang.String` | `COMPILER_EXTJAVAC` |
    `static java.lang.String` | `COMPILER_EXTJAVAC_CLASSNAME` |
    `static java.lang.String` | `COMPILER_GCJ` |
    `static java.lang.String` | `COMPILER_JAVAC_1_1` |
    `static java.lang.String` | `COMPILER_JAVAC_1_2` |
    `static java.lang.String` | `COMPILER_JAVAC_1_3` |
    `static java.lang.String` | `COMPILER_JAVAC_1_4` |
    `static java.lang.String` | `COMPILER_JAVAC_1_5` |
    `static java.lang.String` | `COMPILER_JAVAC_1_6` |
    `static java.lang.String` | `COMPILER_JAVAC_1_7` |
    `static java.lang.String` | `COMPILER_JAVAC_1_8` |
    `static java.lang.String` | `COMPILER_JAVAC_10_PLUS` |
    `static java.lang.String` | `COMPILER_JAVAC_9` |
    `static java.lang.String` | `COMPILER_JAVAC_9_ALIAS` |
    `static java.lang.String` | `COMPILER_JIKES` |
    `static java.lang.String` | `COMPILER_JVC` |
    `static java.lang.String` | `COMPILER_JVC_ALIAS` |
    `static java.lang.String` | `COMPILER_KJC` |
    `static java.lang.String` | `COMPILER_MODERN` |
    `static java.lang.String` | `COMPILER_MODERN_CLASSNAME` |
    `static java.lang.String` | `COMPILER_SYMANTEC` |
    `static java.lang.String` | `COMPILER_SYMANTEC_ALIAS` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | 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.
    `static boolean` | `isClassicJdkCompiler​(java.lang.String compilerName)` | Does the compiler correspond to "classic"?
    `static boolean` | `isForkedJavac​(java.lang.String compilerName)` | Is the compiler implementation a forked jdk compiler?
    `static boolean` | `isJdkCompiler​(java.lang.String compilerName)` | Is the compiler implementation a jdk compiler?
    `static boolean` | `isJdkCompilerNickname​(java.lang.String compilerName)` | Is the compiler implementation a jdk compiler without specified version?
    `static boolean` | `isModernJdkCompiler​(java.lang.String compilerName)` | Does the compiler correspond to "modern"?

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

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

- - ### Field Detail

    - #### COMPILER_JIKES

          public static final java.lang.String COMPILER_JIKES

      See Also:
        Constant Field Values

    - #### COMPILER_GCJ

          public static final java.lang.String COMPILER_GCJ

      See Also:
        Constant Field Values

    - #### COMPILER_SYMANTEC_ALIAS

          public static final java.lang.String COMPILER_SYMANTEC_ALIAS

      See Also:
        Constant Field Values

    - #### COMPILER_SYMANTEC

          public static final java.lang.String COMPILER_SYMANTEC

      See Also:
        Constant Field Values

    - #### COMPILER_JVC_ALIAS

          public static final java.lang.String COMPILER_JVC_ALIAS

      See Also:
        Constant Field Values

    - #### COMPILER_JVC

          public static final java.lang.String COMPILER_JVC

      See Also:
        Constant Field Values

    - #### COMPILER_KJC

          public static final java.lang.String COMPILER_KJC

      See Also:
        Constant Field Values

    - #### COMPILER_JAVAC_1_1

          public static final java.lang.String COMPILER_JAVAC_1_1

      See Also:
        Constant Field Values

    - #### COMPILER_JAVAC_1_2

          public static final java.lang.String COMPILER_JAVAC_1_2

      See Also:
        Constant Field Values

    - #### COMPILER_JAVAC_1_3

          public static final java.lang.String COMPILER_JAVAC_1_3

      See Also:
        Constant Field Values

    - #### COMPILER_JAVAC_1_4

          public static final java.lang.String COMPILER_JAVAC_1_4

      See Also:
        Constant Field Values

    - #### COMPILER_JAVAC_1_5

          public static final java.lang.String COMPILER_JAVAC_1_5

      See Also:
        Constant Field Values

    - #### COMPILER_JAVAC_1_6

          public static final java.lang.String COMPILER_JAVAC_1_6

      See Also:
        Constant Field Values

    - #### COMPILER_JAVAC_1_7

          public static final java.lang.String COMPILER_JAVAC_1_7

      See Also:
        Constant Field Values

    - #### COMPILER_JAVAC_1_8

          public static final java.lang.String COMPILER_JAVAC_1_8

      See Also:
        Constant Field Values

    - #### COMPILER_JAVAC_9_ALIAS

          public static final java.lang.String COMPILER_JAVAC_9_ALIAS

      See Also:
        Constant Field Values

    - #### COMPILER_JAVAC_9

          public static final java.lang.String COMPILER_JAVAC_9

      See Also:
        Constant Field Values

    - #### COMPILER_JAVAC_10_PLUS

          public static final java.lang.String COMPILER_JAVAC_10_PLUS

      See Also:
        Constant Field Values

    - #### COMPILER_CLASSIC

          public static final java.lang.String COMPILER_CLASSIC

      See Also:
        Constant Field Values

    - #### COMPILER_MODERN

          public static final java.lang.String COMPILER_MODERN

      See Also:
        Constant Field Values

    - #### COMPILER_EXTJAVAC

          public static final java.lang.String COMPILER_EXTJAVAC

      See Also:
        Constant Field Values

    - #### COMPILER_MODERN_CLASSNAME

          public static final java.lang.String COMPILER_MODERN_CLASSNAME

    - #### COMPILER_EXTJAVAC_CLASSNAME

          public static final java.lang.String COMPILER_EXTJAVAC_CLASSNAME

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

    - #### isForkedJavac

          public static boolean isForkedJavac​(java.lang.String compilerName)

      Is the compiler implementation a forked jdk compiler?
      Parameters:
        `compilerImpl` - the name of the compiler implementation
      Since:
        1.10.12

    - #### isJdkCompiler

          public static boolean isJdkCompiler​(java.lang.String compilerName)

      Is the compiler implementation a jdk compiler?
      Parameters:
        `compilerImpl` - the name of the compiler implementation
      Since:
        1.10.12

    - #### isJdkCompilerNickname

          public static boolean isJdkCompilerNickname​(java.lang.String compilerName)

      Is the compiler implementation a jdk compiler without specified version?
      Parameters:
        `compilerImpl` - the name of the compiler implementation
      Since:
        1.10.12

    - #### isClassicJdkCompiler

          public static boolean isClassicJdkCompiler​(java.lang.String compilerName)

      Does the compiler correspond to "classic"?
      Parameters:
        `compilerImpl` - the name of the compiler implementation
      Since:
        1.10.12

    - #### isModernJdkCompiler

          public static boolean isModernJdkCompiler​(java.lang.String compilerName)

      Does the compiler correspond to "modern"?
      Parameters:
        `compilerImpl` - the name of the compiler implementation
      Since:
        1.10.12