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 Details

  • 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