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