Package org.apache.tools.ant.taskdefs.compilers

# Class CompilerAdapterFactory

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

public final class CompilerAdapterFactory extends Object
Creates the necessary compiler adapter, given basic criteria.

Since:
  Ant 1.3

## Field Summary

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

## Method Summary

Modifier and Type
Method
Description
`static CompilerAdapter`
`getCompiler(String compilerType, Task task)`
Based on the parameter passed in, this method creates the necessary factory desired.
`static CompilerAdapter`
`getCompiler(String compilerType, Task task, Path classpath)`
Based on the parameter passed in, this method creates the necessary factory desired.
`static boolean`
`isClassicJdkCompiler(String compilerName)`
Does the compiler correspond to "classic"?
`static boolean`
`isForkedJavac(String compilerName)`
Is the compiler implementation a forked jdk compiler?
`static boolean`
`isJdkCompiler(String compilerName)`
Is the compiler implementation a jdk compiler?
`static boolean`
`isJdkCompilerNickname(String compilerName)`
Is the compiler implementation a jdk compiler without specified version?
`static boolean`
`isModernJdkCompiler(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 Details

### COMPILER_JIKES

public static final String COMPILER_JIKES

See Also:
  - Constant Field Values

### COMPILER_GCJ

public static final String COMPILER_GCJ

See Also:
  - Constant Field Values

### COMPILER_SYMANTEC_ALIAS

public static final String COMPILER_SYMANTEC_ALIAS

See Also:
  - Constant Field Values

### COMPILER_SYMANTEC

public static final String COMPILER_SYMANTEC

See Also:
  - Constant Field Values

### COMPILER_JVC_ALIAS

public static final String COMPILER_JVC_ALIAS

See Also:
  - Constant Field Values

### COMPILER_JVC

public static final String COMPILER_JVC

See Also:
  - Constant Field Values

### COMPILER_KJC

public static final String COMPILER_KJC

See Also:
  - Constant Field Values

### COMPILER_JAVAC_1_1

public static final String COMPILER_JAVAC_1_1

See Also:
  - Constant Field Values

### COMPILER_JAVAC_1_2

public static final String COMPILER_JAVAC_1_2

See Also:
  - Constant Field Values

### COMPILER_JAVAC_1_3

public static final String COMPILER_JAVAC_1_3

See Also:
  - Constant Field Values

### COMPILER_JAVAC_1_4

public static final String COMPILER_JAVAC_1_4

See Also:
  - Constant Field Values

### COMPILER_JAVAC_1_5

public static final String COMPILER_JAVAC_1_5

See Also:
  - Constant Field Values

### COMPILER_JAVAC_1_6

public static final String COMPILER_JAVAC_1_6

See Also:
  - Constant Field Values

### COMPILER_JAVAC_1_7

public static final String COMPILER_JAVAC_1_7

See Also:
  - Constant Field Values

### COMPILER_JAVAC_1_8

public static final String COMPILER_JAVAC_1_8

See Also:
  - Constant Field Values

### COMPILER_JAVAC_9_ALIAS

public static final String COMPILER_JAVAC_9_ALIAS

See Also:
  - Constant Field Values

### COMPILER_JAVAC_9

public static final String COMPILER_JAVAC_9

See Also:
  - Constant Field Values

### COMPILER_JAVAC_10_PLUS

public static final String COMPILER_JAVAC_10_PLUS

See Also:
  - Constant Field Values

### COMPILER_CLASSIC

public static final String COMPILER_CLASSIC

See Also:
  - Constant Field Values

### COMPILER_MODERN

public static final String COMPILER_MODERN

See Also:
  - Constant Field Values

### COMPILER_EXTJAVAC

public static final String COMPILER_EXTJAVAC

See Also:
  - Constant Field Values

### COMPILER_MODERN_CLASSNAME

public static final String COMPILER_MODERN_CLASSNAME

### COMPILER_EXTJAVAC_CLASSNAME

public static final String COMPILER_EXTJAVAC_CLASSNAME

## Method Details

### getCompiler

public static CompilerAdapter getCompiler(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(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(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(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(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(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(String compilerName)
Does the compiler correspond to "modern"?

Parameters:
  `compilerImpl` - the name of the compiler implementation
Since:
  1.10.12