public abstract class Compiler
extends java.lang.Object
Compiler
interface provides the API to
drive the actual build system.Modifier and Type | Field and Description |
---|---|
static java.lang.String |
COMPILER_GENERATE_CLASSES_DESPITE_ERRORS
Deprecated.
The setting of compiler options is an internal process,
exposed through the visual UI.
|
Constructor and Description |
---|
Compiler() |
Modifier and Type | Method and Description |
---|---|
boolean |
addBuildSystemListener(BuildSystemListener bsl)
BuildSystemListeners should be added in a declarative way
in an extension.xml file, using code such as:
|
boolean |
addCopyListener(CopyListener cl)
CopyListeners should be added in a declarative way
in an extension.xml file, using code such as:
|
abstract void |
cancelCompileOrClean(Context context)
Attempt to cancel the current compile/clean if any.
|
abstract boolean |
clean(Context context,
boolean throwOnFailedDelete,
java.io.OutputStream outStream,
java.io.OutputStream errStream)
Clean the context (may be workspace or project).
|
abstract boolean |
compile(CompileArguments compileArguments)
Compile one or more targets using the arguments defined in the
CompileArguments object.
|
abstract boolean |
compile(Context context,
boolean rebuild,
boolean wait)
Deprecated.
Use compile(CompileArguments) instead
|
abstract boolean |
compile(Context context,
boolean rebuild,
boolean wait,
boolean save)
Deprecated.
Use compile(CompileArguments) instead
|
abstract boolean |
compile(Context context,
boolean rebuild,
boolean wait,
java.io.OutputStream outStream,
java.io.OutputStream errStream)
Deprecated.
Use compile(CompileArguments) instead
|
abstract void |
compile(Context context,
boolean rebuild,
PostBuilder postBuild,
boolean save)
Deprecated.
Use compile(CompileArguments) instead
|
static Compiler |
getCompiler()
Returns the active Compiler instance.
|
abstract LogPage |
getErrorLog() |
abstract LogPage |
getOutputLog()
get{Output|Error}Log gets the default compiler output/error log.
|
abstract boolean |
isBusy(Context context)
Determine if the compiler is already busy with a compilation.
|
abstract boolean |
lock(Context context,
boolean wait)
Lock the compiler with a valid identifying context.
|
abstract boolean |
lock(Context context,
long waitTimeMsec)
Lock the compiler with a valid identifying context.
|
abstract void |
logOutMsg(java.lang.String msg)
logOutMsg log a message on the default compiler output log
|
boolean |
removeBuildSystemListener(BuildSystemListener bsl)
removeBuildSystemListener method removes a build system listener instance
implementation from the build system, see
BuildSystemListener
for more information. |
boolean |
removeCopyListener(CopyListener cl)
removeCopyListener method removes a copy listener instance implementation
from the build system, see
CopyListener for more information. |
static void |
setCompiler(Compiler compiler)
Sets the active Compiler instance.
|
abstract boolean |
unlock(Context context)
Unlock the compiler with the same context used for locking.
|
@Deprecated public static final java.lang.String COMPILER_GENERATE_CLASSES_DESPITE_ERRORS
public static Compiler getCompiler()
public static void setCompiler(Compiler compiler)
<trigger-hooks xmlns="http://xmlns.oracle.com/ide/extension">
<triggers>
<singleton-provider-hook>
<singleton base-class="oracle.ide.compiler.Compiler"
impl-class="oracle.jdeveloper.compiler.JCompiler" />
</singleton-provider-hook>
</triggers>
</trigger-hooks>
compiler
- The active compilerpublic abstract boolean compile(CompileArguments compileArguments)
compileArguments
- The arguments that define the compilation, which
cannot be null.java.lang.IllegalArgumentException
- if compileArguments is null or if
compileArguments.getContext() return nulljava.lang.IllegalStateException
- if the build is already busy with
another clean or compile AND CompileArguments specifies that
this exception can be thrown in this situationpublic abstract void cancelCompileOrClean(Context context)
context
- This needs to be the exact same context instance that
was either passed into the compile/clean method that started the current
compile/clean, or is returned by the CompileArguments instance passed into
the compile method that started the current compile. This ensures that only
the owner of the current compile/clean can cancel that operation.@Deprecated public abstract boolean compile(Context context, boolean rebuild, boolean wait, java.io.OutputStream outStream, java.io.OutputStream errStream)
context
- -- workspace, project or file to compilerebuild
- -- if true, unconditionally rebuild sourceswait
- -- if true, wait for compile to terminateoutStream
- -- stream where to log all verbose build system messageserrStream
- -- stream where to log all translators errors/warnings@Deprecated public abstract boolean compile(Context context, boolean rebuild, boolean wait)
context
- -- workspace, project or file to compilerebuild
- -- if true, unconditionally rebuild sourceswait
- -- if true, wait for compile to terminate@Deprecated public abstract boolean compile(Context context, boolean rebuild, boolean wait, boolean save)
context
- -- workspace, project or file to compilerebuild
- -- if true, unconditionally rebuild sourceswait
- -- if true, wait for compile to terminatesave
- -- if true, will save files before compiling if the IDE
setting is enabled; if false, will never save files,
regardless of the IDE setting. The compile method
without the save parameter will never save files.@Deprecated public abstract void compile(Context context, boolean rebuild, PostBuilder postBuild, boolean save)
context
- -- workspace, project or file to compilerebuild
- -- if true, unconditionally rebuild sourcespostBuild
- --method postBuild will be called once the build is
completedsave
- -- if true, will save files before compiling if the IDE
setting is enabled; if false, will never save files,
regardless of the IDE setting. The compile method
without the save parameter will never save files.public abstract boolean clean(Context context, boolean throwOnFailedDelete, java.io.OutputStream outStream, java.io.OutputStream errStream) throws java.io.IOException
context
- -- workspace or project to cleanthrowOnFailedDelete
- -- if true, throw an IOException if
delete on any file or directory failsoutStream
- -- stream where to log any verbose system message;
if null, stdout will be usederrStream
- -- stream where to log any error/warning;
if null, stderr will be usedjava.io.IOException
- if throwOnDeleteFailure is true and delete
on any file or directory failspublic abstract boolean isBusy(Context context)
context
- -- workspace, project or filepublic abstract boolean lock(Context context, boolean wait)
context
- -- the contextwait
- -- if true, wait for compilation to terminate, lock the
compiler and return true. If false lock the compiler
if possible and return true or false depending if the
compiler was locked or not. Don't use true in a
headless IDE since the user can't cancel!public abstract boolean lock(Context context, long waitTimeMsec)
context
- -- the contextwaitTimeMsec
- -- specifies the maximum time to wait, in milliseconds,
if the compiler is busy and cannot be locked yet.
0 means wait forever, negative numbers means don't
wait at all. Don't use 0 in a headless IDE since
the user can't cancel!public abstract boolean unlock(Context context)
context
- -- the same context used for locking the compilerpublic boolean addBuildSystemListener(BuildSystemListener bsl)
<ide-buildsystem-hook xmlns="http://xmlns.oracle.com/ide/extension">
<buildsystem-listener class-name="oracle.jdevimpl.listener.MyListener" >
<tech-scope>
<and>
<key>Java</key>
<key>Ant</key>
</and>
</tech-scope>
</buildsystem-listener>
</ide-buildsystem-hook>
BuildSystemListener
for more information.bsl
- build system listener to addpublic boolean removeBuildSystemListener(BuildSystemListener bsl)
BuildSystemListener
for more information.bsl
- build system listener to removepublic boolean addCopyListener(CopyListener cl)
<ide-buildsystem-hook xmlns="http://xmlns.oracle.com/ide/extension">
<copy-listener class-name="oracle.jdevimpl.listener.MyListener" >
<tech-scope>
<or>
<key>Java</key>
</or>
</tech-scope>
</copy-listener>
</ide-buildsystem-hook>
CopyListener
for more information.cl
- copy listener to addpublic boolean removeCopyListener(CopyListener cl)
CopyListener
for more information.cl
- copy listener to removepublic abstract LogPage getOutputLog()
public abstract LogPage getErrorLog()
public abstract void logOutMsg(java.lang.String msg)
msg
- -- msg to print on the log