Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.eclipse.jdt.internal.core.builder
Class JavaBuilder  view JavaBuilder download JavaBuilder.java

java.lang.Object
  extended byorg.eclipse.core.internal.events.InternalBuilder
      extended byorg.eclipse.core.resources.IncrementalProjectBuilder
          extended byorg.eclipse.jdt.internal.core.builder.JavaBuilder
All Implemented Interfaces:
org.eclipse.core.runtime.IExecutableExtension

public class JavaBuilder
extends org.eclipse.core.resources.IncrementalProjectBuilder


Field Summary
(package private)  org.eclipse.jdt.internal.core.util.SimpleLookupTable binaryLocationsPerProject
           
(package private) static java.util.ArrayList builtProjects
          A list of project names that have been built.
(package private)  org.eclipse.core.resources.IProject currentProject
           
static boolean DEBUG
           
(package private)  char[][] extraResourceFileFilters
           
(package private)  java.lang.String[] extraResourceFolderFilters
           
(package private)  org.eclipse.jdt.internal.core.JavaProject javaProject
           
(package private)  State lastState
           
(package private)  NameEnvironment nameEnvironment
           
(package private)  BuildNotifier notifier
           
(package private)  org.eclipse.core.resources.IWorkspaceRoot workspaceRoot
           
 
Fields inherited from class org.eclipse.core.resources.IncrementalProjectBuilder
AUTO_BUILD, CLEAN_BUILD, FULL_BUILD, INCREMENTAL_BUILD
 
Fields inherited from class org.eclipse.core.internal.events.InternalBuilder
 
Constructor Summary
JavaBuilder()
           
 
Method Summary
protected  org.eclipse.core.resources.IProject[] build(int kind, java.util.Map ignored, org.eclipse.core.runtime.IProgressMonitor monitor)
          Runs this builder in the specified manner.
private  void buildAll()
           
private  void buildDeltas(org.eclipse.jdt.internal.core.util.SimpleLookupTable deltas)
           
static void buildFinished()
          Hook allowing to reset some static state after a complete build iteration.
static void buildStarting()
          Hook allowing to initialize some static state before a complete build iteration.
protected  void clean(org.eclipse.core.runtime.IProgressMonitor monitor)
          Clean is an opportunity for a builder to discard any additional state that has been computed as a result of previous builds.
private  void cleanup()
           
private  void clearLastState()
           
(package private)  boolean filterExtraResource(org.eclipse.core.resources.IResource resource)
           
private  org.eclipse.jdt.internal.core.util.SimpleLookupTable findDeltas()
           
 State getLastState(org.eclipse.core.resources.IProject project)
           
static org.eclipse.core.resources.IMarker[] getProblemsFor(org.eclipse.core.resources.IResource resource)
           
private  org.eclipse.core.resources.IProject[] getRequiredProjects(boolean includeBinaryPrerequisites)
           
static org.eclipse.core.resources.IMarker[] getTasksFor(org.eclipse.core.resources.IResource resource)
           
private  boolean hasClasspathChanged()
           
private  boolean hasStructuralDelta()
           
private  void initializeBuilder()
           
private  boolean isClasspathBroken(org.eclipse.jdt.core.IClasspathEntry[] classpath, org.eclipse.core.resources.IProject p)
           
private  boolean isWorthBuilding()
           
(package private)  void mustPropagateStructuralChanges()
           
static State readState(org.eclipse.core.resources.IProject project, java.io.DataInputStream in)
           
private  void recordNewState(State state)
           
static void removeProblemsAndTasksFor(org.eclipse.core.resources.IResource resource)
           
static void removeProblemsFor(org.eclipse.core.resources.IResource resource)
           
static void removeTasksFor(org.eclipse.core.resources.IResource resource)
           
 java.lang.String toString()
          String representation for debugging purposes
static void writeState(java.lang.Object state, java.io.DataOutputStream out)
           
 
Methods inherited from class org.eclipse.core.resources.IncrementalProjectBuilder
forgetLastBuiltState, getDelta, getProject, hasBeenBuilt, isInterrupted, needRebuild, setInitializationData, startupOnInitialize
 
Methods inherited from class org.eclipse.core.internal.events.InternalBuilder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

currentProject

org.eclipse.core.resources.IProject currentProject

javaProject

org.eclipse.jdt.internal.core.JavaProject javaProject

workspaceRoot

org.eclipse.core.resources.IWorkspaceRoot workspaceRoot

nameEnvironment

NameEnvironment nameEnvironment

binaryLocationsPerProject

org.eclipse.jdt.internal.core.util.SimpleLookupTable binaryLocationsPerProject

lastState

State lastState

notifier

BuildNotifier notifier

extraResourceFileFilters

char[][] extraResourceFileFilters

extraResourceFolderFilters

java.lang.String[] extraResourceFolderFilters

DEBUG

public static boolean DEBUG

builtProjects

static java.util.ArrayList builtProjects
A list of project names that have been built. This list is used to reset the JavaModel.existingExternalFiles cache when a build cycle begins so that deleted external jars are discovered.

Constructor Detail

JavaBuilder

public JavaBuilder()
Method Detail

getProblemsFor

public static org.eclipse.core.resources.IMarker[] getProblemsFor(org.eclipse.core.resources.IResource resource)

getTasksFor

public static org.eclipse.core.resources.IMarker[] getTasksFor(org.eclipse.core.resources.IResource resource)

buildStarting

public static void buildStarting()
Hook allowing to initialize some static state before a complete build iteration. This hook is invoked during PRE_AUTO_BUILD notification


buildFinished

public static void buildFinished()
Hook allowing to reset some static state after a complete build iteration. This hook is invoked during POST_AUTO_BUILD notification


removeProblemsFor

public static void removeProblemsFor(org.eclipse.core.resources.IResource resource)

removeTasksFor

public static void removeTasksFor(org.eclipse.core.resources.IResource resource)

removeProblemsAndTasksFor

public static void removeProblemsAndTasksFor(org.eclipse.core.resources.IResource resource)

readState

public static State readState(org.eclipse.core.resources.IProject project,
                              java.io.DataInputStream in)
                       throws java.io.IOException

writeState

public static void writeState(java.lang.Object state,
                              java.io.DataOutputStream out)
                       throws java.io.IOException

build

protected org.eclipse.core.resources.IProject[] build(int kind,
                                                      java.util.Map ignored,
                                                      org.eclipse.core.runtime.IProgressMonitor monitor)
                                               throws org.eclipse.core.runtime.CoreException
Description copied from class: org.eclipse.core.resources.IncrementalProjectBuilder
Runs this builder in the specified manner. Subclasses should implement this method to do the processing they require.

If the build kind is INCREMENTAL_BUILD or AUTO_BUILD, the getDelta method can be used during the invocation of this method to obtain information about what changes have occurred since the last invocation of this method. Any resource delta acquired is valid only for the duration of the invocation of this method.

After completing a build, this builder may return a list of projects for which it requires a resource delta the next time it is run. This builder's project is implicitly included and need not be specified. The build mechanism will attempt to maintain and compute deltas relative to the identified projects when asked the next time this builder is run. Builders must re-specify the list of interesting projects every time they are run as this is not carried forward beyond the next build. Projects mentioned in return value but which do not exist will be ignored and no delta will be made available for them.

This method is long-running; progress and cancellation are provided by the given progress monitor. All builders should report their progress and honor cancel requests in a timely manner. Cancelation requests should be propagated to the caller by throwing OperationCanceledException.

All builders should try to be robust in the face of trouble. In situations where failing the build by throwing CoreException is the only option, a builder has a choice of how best to communicate the problem back to the caller. One option is to use the BUILD_FAILED status code along with a suitable message; another is to use a multi-status containing finer-grained problem diagnoses.


buildAll

private void buildAll()

buildDeltas

private void buildDeltas(org.eclipse.jdt.internal.core.util.SimpleLookupTable deltas)

clean

protected void clean(org.eclipse.core.runtime.IProgressMonitor monitor)
              throws org.eclipse.core.runtime.CoreException
Description copied from class: org.eclipse.core.resources.IncrementalProjectBuilder
Clean is an opportunity for a builder to discard any additional state that has been computed as a result of previous builds. It is recommended that builders override this method to delete all derived resources created by previous builds, and to remove all markers of type IMarker.PROBLEM that were created by previous invocations of the builder. The platform will take care of discarding the builder's last built state (there is no need to call forgetLastBuiltState).

This method is called as a result of invocations of IWorkspace.build or IProject.build where the build kind is CLEAN_BUILD.

This default implementation does nothing. Subclasses may override.

This method is long-running; progress and cancellation are provided by the given progress monitor. All builders should report their progress and honor cancel requests in a timely manner. Cancelation requests should be propagated to the caller by throwing OperationCanceledException.


cleanup

private void cleanup()

clearLastState

private void clearLastState()

filterExtraResource

boolean filterExtraResource(org.eclipse.core.resources.IResource resource)

findDeltas

private org.eclipse.jdt.internal.core.util.SimpleLookupTable findDeltas()

getLastState

public State getLastState(org.eclipse.core.resources.IProject project)

getRequiredProjects

private org.eclipse.core.resources.IProject[] getRequiredProjects(boolean includeBinaryPrerequisites)

hasClasspathChanged

private boolean hasClasspathChanged()

hasStructuralDelta

private boolean hasStructuralDelta()

initializeBuilder

private void initializeBuilder()
                        throws org.eclipse.core.runtime.CoreException

isClasspathBroken

private boolean isClasspathBroken(org.eclipse.jdt.core.IClasspathEntry[] classpath,
                                  org.eclipse.core.resources.IProject p)
                           throws org.eclipse.core.runtime.CoreException

isWorthBuilding

private boolean isWorthBuilding()
                         throws org.eclipse.core.runtime.CoreException

mustPropagateStructuralChanges

void mustPropagateStructuralChanges()

recordNewState

private void recordNewState(State state)

toString

public java.lang.String toString()
String representation for debugging purposes