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

Collapse All | Expand All

(-)dom/org/eclipse/jdt/core/dom/ASTParser.java (-56 / +80 lines)
Lines 242-265 Link Here
242
		this.compilerOptions = options;
242
		this.compilerOptions = options;
243
	}
243
	}
244
244
245
    /**
245
	/**
246
     * Requests that the compiler should perform bindings recovery.
246
	 * Requests that the compiler should perform bindings recovery.
247
     * When bindings recovery is enabled the compiler returns incomplete bindings.
247
	 * When bindings recovery is enabled the compiler returns incomplete bindings.
248
     * <p>
248
	 * <p>
249
     * Default to <code>false</code>.
249
	 * Default to <code>false</code>.
250
     * </p>
250
	 * </p>
251
     * <p>This should be set to true only if bindings are resolved. It has no effect if there is no binding
251
	 * <p>This should be set to true only if bindings are resolved. It has no effect if there is no binding
252
     * resolution.</p>
252
	 * resolution.</p>
253
     *
253
	 *
254
     * @param enabled <code>true</code> if incomplete bindings are expected,
254
	 * @param enabled <code>true</code> if incomplete bindings are expected,
255
     *   and <code>false</code> if only complete bindings are expected.
255
	 *   and <code>false</code> if only complete bindings are expected.
256
     *
256
	 *
257
     * @see IBinding#isRecovered()
257
	 * @see IBinding#isRecovered()
258
     * @since 3.3
258
	 * @since 3.3
259
     */
259
	 */
260
    public void setBindingsRecovery(boolean enabled) {
260
	public void setBindingsRecovery(boolean enabled) {
261
        this.bindingsRecovery = enabled;
261
		this.bindingsRecovery = enabled;
262
    }
262
	}
263
	/**
263
	/**
264
	 * Sets the compiler options to be used when parsing.
264
	 * Sets the compiler options to be used when parsing.
265
	 * <p>
265
	 * <p>
Lines 350-363 Link Here
350
	}
350
	}
351
351
352
	/**
352
	/**
353
     * Requests an abridged abstract syntax tree.
353
	 * Requests an abridged abstract syntax tree.
354
     * By default, complete ASTs are returned.
354
	 * By default, complete ASTs are returned.
355
     * <p>
355
	 * <p>
356
     * When <code>true</code> the resulting AST does not have nodes for
356
	 * When <code>true</code> the resulting AST does not have nodes for
357
     * the entire compilation unit. Rather, the AST is only fleshed out
357
	 * the entire compilation unit. Rather, the AST is only fleshed out
358
     * for the node that include the given source position. This kind of limited
358
	 * for the node that include the given source position. This kind of limited
359
     * AST is sufficient for certain purposes but totally unsuitable for others.
359
	 * AST is sufficient for certain purposes but totally unsuitable for others.
360
     * In places where it can be used, the limited AST offers the advantage of
360
	 * In places where it can be used, the limited AST offers the advantage of
361
     * being smaller and faster to construct.
361
     * being smaller and faster to construct.
362
	 * </p>
362
	 * </p>
363
	 * <p>
363
	 * <p>
Lines 383-388 Link Here
383
	 * compilation unit.
383
	 * compilation unit.
384
	 * </p>
384
	 * </p>
385
	 *
385
	 *
386
	 * <p>This focal position is not used when the AST is built using 
387
	 * {@link #createASTs(ICompilationUnit[], String[], ASTRequestor, IProgressMonitor)}.</p>
388
	 * 
386
	 * @param position a position into the corresponding body declaration
389
	 * @param position a position into the corresponding body declaration
387
	 */
390
	 */
388
	public void setFocalPosition(int position) {
391
	public void setFocalPosition(int position) {
Lines 392-398 Link Here
392
395
393
	/**
396
	/**
394
	 * Sets the kind of constructs to be parsed from the source.
397
	 * Sets the kind of constructs to be parsed from the source.
395
     * Defaults to an entire compilation unit.
398
	 * Defaults to an entire compilation unit.
396
	 * <p>
399
	 * <p>
397
	 * When the parse is successful the result returned includes the ASTs for the
400
	 * When the parse is successful the result returned includes the ASTs for the
398
	 * requested source:
401
	 * requested source:
Lines 426-432 Link Here
426
	 * </ul>
429
	 * </ul>
427
	 * The contrived nodes do not have source positions. Other aspects of the
430
	 * The contrived nodes do not have source positions. Other aspects of the
428
	 * {@link CompilationUnit CompilationUnit} node are unspecified, including
431
	 * {@link CompilationUnit CompilationUnit} node are unspecified, including
429
	 * the exact arrangment of intervening nodes.
432
	 * the exact arrangement of intervening nodes.
430
	 * </p>
433
	 * </p>
431
	 * <p>
434
	 * <p>
432
	 * Lexical or syntax errors detected while parsing can result in
435
	 * Lexical or syntax errors detected while parsing can result in
Lines 453-461 Link Here
453
	 * </p>
456
	 * </p>
454
	 * <p>
457
	 * <p>
455
	 * Binding information is only computed when <code>kind</code> is
458
	 * Binding information is only computed when <code>kind</code> is
456
     * <code>K_COMPILATION_UNIT</code>.
459
	 * <code>K_COMPILATION_UNIT</code>.
457
	 * </p>
460
	 * </p>
458
	 *
461
	 * 
462
	 * <p>This kind is not used the AST is built using
463
	 * {@link #createASTs(ICompilationUnit[], String[], ASTRequestor, IProgressMonitor)}.</p>
464
	 * 
459
	 * @param kind the kind of construct to parse: one of
465
	 * @param kind the kind of construct to parse: one of
460
	 * {@link #K_COMPILATION_UNIT},
466
	 * {@link #K_COMPILATION_UNIT},
461
	 * {@link #K_CLASS_BODY_DECLARATIONS},
467
	 * {@link #K_CLASS_BODY_DECLARATIONS},
Lines 473-483 Link Here
473
	}
479
	}
474
480
475
	/**
481
	/**
476
     * Sets the source code to be parsed.
482
	 * Sets the source code to be parsed.
477
     *
483
	 *
484
	 * <p>This source is not used the AST is built using 
485
	 * {@link #createASTs(ICompilationUnit[], String[], ASTRequestor, IProgressMonitor)}.</p>
486
	 *
478
	 * @param source the source string to be parsed,
487
	 * @param source the source string to be parsed,
479
     * or <code>null</code> if none
488
	 * or <code>null</code> if none
480
     */
489
	 */
481
	public void setSource(char[] source) {
490
	public void setSource(char[] source) {
482
		this.rawSource = source;
491
		this.rawSource = source;
483
		// clear the type root
492
		// clear the type root
Lines 485-513 Link Here
485
	}
494
	}
486
495
487
	/**
496
	/**
488
     * Sets the source code to be parsed.
497
	 * Sets the source code to be parsed.
489
     * This method automatically sets the project (and compiler
498
	 * This method automatically sets the project (and compiler
490
     * options) based on the given compilation unit, in a manner
499
	 * options) based on the given compilation unit, in a manner
491
     * equivalent to <code>setProject(source.getJavaProject())</code>
500
	 * equivalent to <code>setProject(source.getJavaProject())</code>
492
     *
501
	 *
502
	 * <p>This source is not used the AST is built using 
503
	 * {@link #createASTs(ICompilationUnit[], String[], ASTRequestor, IProgressMonitor)}.</p>
504
	 * 
493
	 * @param source the Java model compilation unit whose source code
505
	 * @param source the Java model compilation unit whose source code
494
     * is to be parsed, or <code>null</code> if none
506
	 * is to be parsed, or <code>null</code> if none
495
      */
507
	 */
496
	public void setSource(ICompilationUnit source) {
508
	public void setSource(ICompilationUnit source) {
497
		setSource((ITypeRoot)source);
509
		setSource((ITypeRoot)source);
498
	}
510
	}
499
511
500
	/**
512
	/**
501
     * Sets the source code to be parsed.
513
	 * Sets the source code to be parsed.
502
     * <p>This method automatically sets the project (and compiler
514
	 * <p>This method automatically sets the project (and compiler
503
     * options) based on the given compilation unit, in a manner
515
	 * options) based on the given compilation unit, in a manner
504
     * equivalent to <code>setProject(source.getJavaProject())</code>.</p>
516
	 * equivalent to <code>setProject(source.getJavaProject())</code>.</p>
505
     * <p>If the given class file has  no source attachment, the creation of the
517
	 * <p>If the given class file has  no source attachment, the creation of the
506
     * ast will fail with an IllegalStateException.</p>
518
	 * ast will fail with an IllegalStateException.</p>
507
     *
519
	 *
520
	 * <p>This source is not used the AST is built using 
521
	 * {@link #createASTs(ICompilationUnit[], String[], ASTRequestor, IProgressMonitor)}.</p>
522
	 * 
508
	 * @param source the Java model class file whose corresponding source code
523
	 * @param source the Java model class file whose corresponding source code
509
     * is to be parsed, or <code>null</code> if none
524
	 * is to be parsed, or <code>null</code> if none
510
     */
525
	 */
511
	public void setSource(IClassFile source) {
526
	public void setSource(IClassFile source) {
512
		setSource((ITypeRoot)source);
527
		setSource((ITypeRoot)source);
513
	}
528
	}
Lines 520-525 Link Here
520
	 * <p>If the source is a class file without source attachment, the creation of the
535
	 * <p>If the source is a class file without source attachment, the creation of the
521
	 * ast will fail with an IllegalStateException.</p>
536
	 * ast will fail with an IllegalStateException.</p>
522
	 *
537
	 *
538
	 * <p>This source is not used the AST is built using 
539
	 * {@link #createASTs(ICompilationUnit[], String[], ASTRequestor, IProgressMonitor)}.</p>
540
	 *
523
	 * @param source the Java model compilation unit or class file whose corresponding source code
541
	 * @param source the Java model compilation unit or class file whose corresponding source code
524
	 * is to be parsed, or <code>null</code> if none
542
	 * is to be parsed, or <code>null</code> if none
525
	 * @since 3.3
543
	 * @since 3.3
Lines 541-546 Link Here
541
     * By default, the entire source string will be parsed
559
     * By default, the entire source string will be parsed
542
     * (<code>offset</code> 0 and <code>length</code> -1).
560
     * (<code>offset</code> 0 and <code>length</code> -1).
543
     *
561
     *
562
	 * <p>This range is not used the AST is built using 
563
	 * {@link #createASTs(ICompilationUnit[], String[], ASTRequestor, IProgressMonitor)}.</p>
564
     *
544
     * @param offset the index of the first character to parse
565
     * @param offset the index of the first character to parse
545
     * @param length the number of characters to parse, or -1 if
566
     * @param length the number of characters to parse, or -1 if
546
     * the remainder of the source string is to be parsed
567
     * the remainder of the source string is to be parsed
Lines 600-609 Link Here
600
	}
621
	}
601
622
602
	/**
623
	/**
603
     * Sets the name of the compilation unit that would hypothetically contains
624
	 * Sets the name of the compilation unit that would hypothetically contains
604
     * the source string. This is used in conjunction with {@link #setSource(char[])}
625
	 * the source string. This is used in conjunction with {@link #setSource(char[])}
605
     * and {@link #setProject(IJavaProject) } to locate the compilation unit relative to a Java project.
626
	 * and {@link #setProject(IJavaProject) } to locate the compilation unit relative to a Java project.
606
     * Defaults to none (<code>null</code>).
627
	 * Defaults to none (<code>null</code>).
607
	 * <p>
628
	 * <p>
608
	 * The name of the compilation unit must be supplied for resolving bindings.
629
	 * The name of the compilation unit must be supplied for resolving bindings.
609
	 * This name should be suffixed by a dot ('.') followed by one of the
630
	 * This name should be suffixed by a dot ('.') followed by one of the
Lines 615-624 Link Here
615
	 * of the compilation unit must be "/P/Foo.java".
636
	 * of the compilation unit must be "/P/Foo.java".
616
	 * If the source declares a public class name "Bar" in a package "p1.p2" in a project "P" in a source folder "src",
637
	 * If the source declares a public class name "Bar" in a package "p1.p2" in a project "P" in a source folder "src",
617
	 * the name of the compilation unit must be "/P/src/p1/p2/Bar.java".</p>
638
	 * the name of the compilation unit must be "/P/src/p1/p2/Bar.java".</p>
618
     *
639
	 *
640
	 * <p>This source is not used the AST is built using 
641
	 * {@link #createASTs(ICompilationUnit[], String[], ASTRequestor, IProgressMonitor)}.</p>
642
	 *
619
	 * @param unitName the name of the compilation unit that would contain the source
643
	 * @param unitName the name of the compilation unit that would contain the source
620
	 *    string, or <code>null</code> if none
644
	 *    string, or <code>null</code> if none
621
     */
645
	 */
622
	public void setUnitName(String unitName) {
646
	public void setUnitName(String unitName) {
623
		this.unitName = unitName;
647
		this.unitName = unitName;
624
	}
648
	}

Return to bug 296708