Lines 356-390
Link Here
|
356 |
* the project for which this builder is defined. The default |
356 |
* the project for which this builder is defined. The default |
357 |
* is the workspace root rule. |
357 |
* is the workspace root rule. |
358 |
* |
358 |
* |
359 |
* The scheduling rule determines which resources in the workspace are |
|
|
360 |
* protected from being modified by other threads while the builder is running. Up until |
361 |
* Eclipse 3.5, the entire workspace was always locked during a build; |
362 |
* since Eclipse 3.6, builders can allow resources outside their scheduling |
363 |
* rule to be modified. |
364 |
* <p> |
365 |
* <strong>Notes:</strong> |
366 |
* <ul> |
367 |
* <li> |
368 |
* If the builder rule is non-<code>null</code> it must be "contained" in the workspace root rule. |
369 |
* I.e. {@link ISchedulingRule#contains(ISchedulingRule)} must return |
370 |
* <code>true</code> when invoked on the workspace root with the builder rule. |
371 |
* </li> |
372 |
* <li> |
373 |
* The rule returned here may have no effect if the build is invoked within the |
374 |
* scope of another operation that locks the entire workspace. |
375 |
* </li> |
376 |
* <li> |
377 |
* If this method returns any rule other than the workspace root, |
378 |
* resources outside of the rule scope can be modified concurrently with the build. |
379 |
* The delta returned by {@link #getDelta(IProject)} for any project |
380 |
* outside the scope of the builder's rule will not contain changes that occurred |
381 |
* concurrently with the build. |
382 |
* </ul> |
383 |
* </p> |
384 |
* |
385 |
* @return a scheduling rule which is contained in the workspace root rule or <code>null</code> |
359 |
* @return a scheduling rule which is contained in the workspace root rule or <code>null</code> |
386 |
* |
|
|
387 |
* @since 3.5 |
360 |
* @since 3.5 |
|
|
361 |
* @see #getRule(int, Map) |
362 |
* @deprecated clients should override {@link #getRule(int, Map)} instead. |
388 |
*/ |
363 |
*/ |
389 |
public ISchedulingRule getRule() { |
364 |
public ISchedulingRule getRule() { |
390 |
return ResourcesPlugin.getWorkspace().getRoot(); |
365 |
return ResourcesPlugin.getWorkspace().getRoot(); |
Lines 393-399
Link Here
|
393 |
/** |
368 |
/** |
394 |
* Returns the scheduling rule that is required for building |
369 |
* Returns the scheduling rule that is required for building |
395 |
* the project for which this builder is defined. The default |
370 |
* the project for which this builder is defined. The default |
396 |
* is {@link #getRule()}. |
371 |
* is {@link #getRule()}, which returns the workspace root |
|
|
372 |
* rule unless overridden. |
397 |
* <p> |
373 |
* <p> |
398 |
* The scheduling rule determines which resources in the workspace are |
374 |
* The scheduling rule determines which resources in the workspace are |
399 |
* protected from being modified by other threads while the builder is running. Up until |
375 |
* protected from being modified by other threads while the builder is running. Up until |
Lines 416-427
Link Here
|
416 |
* If this method returns any rule other than the workspace root, |
392 |
* If this method returns any rule other than the workspace root, |
417 |
* resources outside of the rule scope can be modified concurrently with the build. |
393 |
* resources outside of the rule scope can be modified concurrently with the build. |
418 |
* The delta returned by {@link #getDelta(IProject)} for any project |
394 |
* The delta returned by {@link #getDelta(IProject)} for any project |
419 |
* outside the scope of the builder's rule will not contain changes that occurred |
395 |
* outside the scope of the builder's rule may not contain changes that occurred |
420 |
* concurrently with the build. |
396 |
* concurrently with the build. |
421 |
* </ul> |
397 |
* </ul> |
422 |
* </p> |
398 |
* </p> |
|
|
399 |
* <p> |
400 |
* Subclasses may override this method. |
401 |
* </p> |
423 |
* |
402 |
* |
424 |
* @param trigger the type of build being triggered. Valid values are |
403 |
* @param trigger the type of build being triggered. Valid values include |
425 |
* <ul> |
404 |
* <ul> |
426 |
* <li>{@link #FULL_BUILD} - indicates a full build.</li> |
405 |
* <li>{@link #FULL_BUILD} - indicates a full build.</li> |
427 |
* <li>{@link #INCREMENTAL_BUILD}- indicates an incremental build.</li> |
406 |
* <li>{@link #INCREMENTAL_BUILD}- indicates an incremental build.</li> |
Lines 429-439
Link Here
|
429 |
* incremental build (autobuilding on).</li> |
408 |
* incremental build (autobuilding on).</li> |
430 |
* <li>{@link #CLEAN_BUILD} - indicates a clean build |
409 |
* <li>{@link #CLEAN_BUILD} - indicates a clean build |
431 |
* </ul> |
410 |
* </ul> |
432 |
* This may be different {@link #build(int, Map, IProgressMonitor)} kind. |
|
|
433 |
* @param args a table of builder-specific arguments keyed by argument name |
411 |
* @param args a table of builder-specific arguments keyed by argument name |
434 |
* (key type: <code>String</code>, value type: <code>String</code>); |
412 |
* (key type: <code>String</code>, value type: <code>String</code>); |
435 |
* <code>null</code> is equivalent to an empty map |
413 |
* <code>null</code> is equivalent to an empty map. |
436 |
* @return a scheduling rule which is contained in the workspace root rule or <code>null</code> |
414 |
* @return a scheduling rule which is contained in the workspace root rule |
|
|
415 |
* or <code>null</code> to indicate that no protection against resource |
416 |
* modification during the build is needed. |
437 |
* |
417 |
* |
438 |
* @since 3.6 |
418 |
* @since 3.6 |
439 |
*/ |
419 |
*/ |