Package org.eclipse.cdt.core.resources

## Class ACBuilder

- java.lang.Object
- - org.eclipse.core.internal.events.InternalBuilder
  - - org.eclipse.core.resources.IncrementalProjectBuilder
    - - org.eclipse.cdt.core.resources.ACBuilder

All Implemented Interfaces:
  `IMarkerGenerator`, `org.eclipse.core.runtime.IExecutableExtension`

    public abstract class ACBuilder
    extends org.eclipse.core.resources.IncrementalProjectBuilder
    implements IMarkerGenerator

### Field Summary

Fields
`protected static boolean` `DEBUG_EVENTS`

### Fields inherited from class org.eclipse.core.resources.IncrementalProjectBuilder

`AUTO_BUILD, CLEAN_BUILD, FULL_BUILD, INCREMENTAL_BUILD`

### Fields inherited from interface org.eclipse.cdt.core.IMarkerGenerator

`SEVERITY_ERROR_BUILD, SEVERITY_ERROR_RESOURCE, SEVERITY_INFO, SEVERITY_WARNING`

### Constructor Summary

Constructors
`ACBuilder()` Constructor for ACBuilder

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `addMarker​(ProblemMarkerInfo problemMarkerInfo)` Callback from Output Parser
`void` `addMarker​(org.eclipse.core.resources.IResource file, int lineNumber, String errorDesc, int severity, String errorVar)`
`static boolean` `buildConfigResourceChanges()` Preference for building configurations only when there are resource changes within Eclipse or when there are changes in its references.
`protected void` `clean​(org.eclipse.core.runtime.IProgressMonitor monitor)`
`void` `deDuplicate()` Remove duplicate error markers that may have been created by `addMarker(ProblemMarkerInfo)` with the `ProblemMarkerInfo.isDeferDeDuplication()` flag set.
`protected org.eclipse.core.resources.IProject` `getCurrentProject()` Returns the current project that this builder is running.
`org.eclipse.core.runtime.jobs.ISchedulingRule` `getRule​(int trigger, Map args)` Default ACBuilder shouldn't require locking the workspace during a CDT Project build.
`static boolean` `needAllConfigBuild()`
`protected void` `printEvent​(int kind, Map<String,​String> args)` For debugging purpose only.
`static void` `setAllConfigBuild​(boolean enable)`
`static void` `setBuildConfigResourceChanges​(boolean enable)` Preference for building configurations only when there are resource changes within Eclipse or when there are changes in its references.
`protected void` `setCurrentProject​(org.eclipse.core.resources.IProject project)` Set the current project that this builder is running.

### Methods inherited from class org.eclipse.core.resources.IncrementalProjectBuilder

`build, forgetLastBuiltState, getBuildConfig, getCommand, getContext, getDelta, getProject, hasBeenBuilt, isInterrupted, needRebuild, rememberLastBuiltState, requestProjectRebuild, requestProjectsRebuild, setInitializationData, startupOnInitialize`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### DEBUG_EVENTS

    protected static final boolean DEBUG_EVENTS

Since:
  5.2
See Also:
  Constant Field Values

### Constructor Detail

#### ACBuilder

    public ACBuilder()

Constructor for ACBuilder

### Method Detail

#### setCurrentProject

    protected void setCurrentProject​(org.eclipse.core.resources.IProject project)

Set the current project that this builder is running.

Since:
  5.11

#### getCurrentProject

    protected org.eclipse.core.resources.IProject getCurrentProject()

Returns the current project that this builder is running.

Returns:
  the project
Since:
  5.11

#### addMarker

    public void addMarker​(org.eclipse.core.resources.IResource file,
                          int lineNumber,
                          String errorDesc,
                          int severity,
                          String errorVar)

Specified by:
  `addMarker` in interface `IMarkerGenerator`

#### deDuplicate

    public void deDuplicate()

Remove duplicate error markers that may have been created by `addMarker(ProblemMarkerInfo)` with the `ProblemMarkerInfo.isDeferDeDuplication()` flag set. This method will also remove other duplicate ICModelMarker.C_MODEL_PROBLEM_MARKER markers on the resources referred to by ProblemMarkerInfo.

Since:
  6.3

#### addMarker

    public void addMarker​(ProblemMarkerInfo problemMarkerInfo)

Callback from Output Parser

Specified by:
  `addMarker` in interface `IMarkerGenerator`

#### needAllConfigBuild

    public static boolean needAllConfigBuild()

#### setAllConfigBuild

    public static void setAllConfigBuild​(boolean enable)

#### buildConfigResourceChanges

    public static boolean buildConfigResourceChanges()

Preference for building configurations only when there are resource changes within Eclipse or when there are changes in its references.

Returns:
  true if configurations will be build when project resource changes within Eclipse false otherwise
Since:
  5.1

#### setBuildConfigResourceChanges

    public static void setBuildConfigResourceChanges​(boolean enable)

Preference for building configurations only when there are resource changes within Eclipse or when there are changes in its references.

Parameters:
  `enable` -
Since:
  5.1

#### printEvent

    protected void printEvent​(int kind,
                              Map<String,​String> args)

For debugging purpose only. Prints events on the debug console.

Since:
  5.2

#### clean

    protected void clean​(org.eclipse.core.runtime.IProgressMonitor monitor)
                  throws org.eclipse.core.runtime.CoreException

Overrides:
  `clean` in class `org.eclipse.core.resources.IncrementalProjectBuilder`
Throws:
  `org.eclipse.core.runtime.CoreException`

#### getRule

    public org.eclipse.core.runtime.jobs.ISchedulingRule getRule​(int trigger,
                                                                 Map args)

Default ACBuilder shouldn't require locking the workspace during a CDT Project build. Note this may have a detrimental effect on #getDelta(). Derived builders which rely on #getDelta(...) being accurate should return a WorkspaceRoot scheduling rule.

Overrides:
  `getRule` in class `org.eclipse.core.resources.IncrementalProjectBuilder`
Since:
  5.2