org.codehaus.plexus.compiler

## Interface Compiler

All Known Implementing Classes:
  AbstractCompiler, CSharpCompiler, EclipseJavaCompiler, J2ObjCCompiler, JavacCompiler, JikesCompiler

    public interface Compiler

The interface of an compiling language processor (aka compiler).

Author:
  Jason van Zyl, Trygve Laugstøl, Matthew Pocock

### Field Summary

Fields
`static String` `ROLE`

### Method Summary

All Methods Instance Methods Abstract Methods Deprecated Methods
`boolean` `canUpdateTarget(CompilerConfiguration configuration)`
`List<CompilerError>` `compile(CompilerConfiguration configuration)` Deprecated.
`String[]` `createCommandLine(CompilerConfiguration config)` Create the command line that would be executed using this configuration.
`CompilerOutputStyle` `getCompilerOutputStyle()`
`String` `getInputFileEnding(CompilerConfiguration configuration)`
`String` `getOutputFile(CompilerConfiguration configuration)`
`String` `getOutputFileEnding(CompilerConfiguration configuration)`
`CompilerResult` `performCompile(CompilerConfiguration configuration)` Performs the compilation of the project.

### Field Detail

#### ROLE

    static final String ROLE

### Method Detail

#### getCompilerOutputStyle

    CompilerOutputStyle getCompilerOutputStyle()

#### getInputFileEnding

    String getInputFileEnding(CompilerConfiguration configuration)
                       throws CompilerException

Throws:
  `CompilerException`

#### getOutputFileEnding

    String getOutputFileEnding(CompilerConfiguration configuration)
                        throws CompilerException

Throws:
  `CompilerException`

#### getOutputFile

    String getOutputFile(CompilerConfiguration configuration)
                  throws CompilerException

Throws:
  `CompilerException`

#### canUpdateTarget

    boolean canUpdateTarget(CompilerConfiguration configuration)
                     throws CompilerException

Throws:
  `CompilerException`

#### performCompile

    CompilerResult performCompile(CompilerConfiguration configuration)
                           throws CompilerException

Performs the compilation of the project. Clients must implement this method.

Parameters:
  `configuration` - the configuration description of the compilation to perform
Returns:
  the result of the compilation returned by the language processor
Throws:
  `CompilerException`

#### compile

    @Deprecated
    List<CompilerError> compile(CompilerConfiguration configuration)
                                     throws CompilerException

Deprecated.
This method is provided for backwards compatibility only. Clients should use `performCompile(CompilerConfiguration)` instead.

Parameters:
  `configuration` - the configuration description of the compilation to perform
Returns:
  the result of the compilation returned by the language processor
Throws:
  `CompilerException`

#### createCommandLine

    String[] createCommandLine(CompilerConfiguration config)
                        throws CompilerException

Create the command line that would be executed using this configuration. If this particular compiler has no concept of a command line then returns null.

Parameters:
  `config` - the CompilerConfiguration describing the compilation
Returns:
  an array of Strings that make up the command line, or null if this compiler has no concept of command line
Throws:
  `CompilerException` - if there was an error generating the command line