View | Details | Raw Unified | Return to bug 306822 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/core/resources/IncrementalProjectBuilder.java (-33 / +13 lines)
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
	 */

Return to bug 306822