JDK_1_5-Merge with HEAD: v_423a
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java
index 45baaa7..8b10fa0 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java
@@ -68,12 +68,20 @@
return new SearchDocument(documentPath, this.searchParticipant) {
public byte[] getByteContents() {
try {
- return org.eclipse.jdt.internal.compiler.util.Util.getFileByteContent(new File(this.documentPath));
+ return org.eclipse.jdt.internal.compiler.util.Util.getFileByteContent(new File(getPath()));
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
+ public char[] getCharContents() {
+ // not used
+ return null;
+ }
+ public String getEncoding() {
+ // not used
+ return null;
+ }
};
}
};
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/CollisionCase.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/CollisionCase.java
index 227af10..78d6732 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/CollisionCase.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/CollisionCase.java
@@ -53,7 +53,7 @@
"1. ERROR in X.java (at line 3)\n" +
" foo.bar abar; \n" +
" ^^^^^^^\n" +
- "foo.bar cannot be resolved (or is not a valid type) for the field X.abar\n" +
+ "foo.bar cannot be resolved to a type\n" +
"----------\n");
}
}
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_3.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_3.java
index 0384334..e40814a 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_3.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_3.java
@@ -13,14 +13,14 @@
import java.io.File;
import java.io.IOException;
import java.util.Map;
-
import junit.framework.Test;
-
import org.eclipse.jdt.core.ToolFactory;
import org.eclipse.jdt.core.util.ClassFileBytesDisassembler;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
public class Compliance_1_3 extends AbstractRegressionTest {
+boolean docSupport = false;
+
public Compliance_1_3(String name) {
super(name);
}
@@ -33,18 +33,32 @@
options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_3);
options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_3);
options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_1);
+ if (docSupport) {
+ options.put(CompilerOptions.OPTION_DocCommentSupport, CompilerOptions.ENABLED);
+ options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.ERROR);
+ }
return options;
}
public static Test suite() {
- return setupSuite(testClass());
-/*
- TestSuite ts;
- //some of the tests depend on the order of this suite.
- ts = new TestSuite();
- //
- ts.addTest(new Compliance_1_3("test17"));
- return new RegressionTestSetup(ts);
-*/
+ return suite(testClass(), null);
+}
+// Use this static initializer to specify subset for tests
+// All specified tests which does not belong to the class are skipped...
+static {
+ // Names of tests to run: can be "testBugXXXX" or "BugXXXX")
+// testsNames = new String[] { "Bug58069" };
+ // Numbers of tests to run: "test<number>" will be run for each number of this array
+ testsNumbers = new int[] { 78 };
+ // Range numbers of tests to run: all tests between "test<first>" and "test<last>" will be run for { first, last }
+// testsRange = new int[] { 76, -1 };
+}
+/* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+protected void setUp() throws Exception {
+ super.setUp();
+ // Javadoc disabled by default
+ docSupport = false;
}
public void test001() {
this.runNegativeTest(
@@ -2604,6 +2618,136 @@
"The local variable displayString may not have been initialized\n" +
"----------\n");
}
+public void test075() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X { \n" +
+ " public void foo(int p1) {} \n" +
+ " public void foo(short p1) {} \n" +
+ "} \n",
+ "Y.java",
+ "public class Y extends X { \n" +
+ " public void foo(long p1) {} \n" +
+ " public void test() { foo((short) 1); } \n" +
+ "} \n",
+ },
+ "----------\n" +
+ "1. ERROR in Y.java (at line 3)\r\n" +
+ " public void test() { foo((short) 1); } \r\n" +
+ " ^^^\n" +
+ "The method foo(long) is ambiguous for the type Y\n" +
+ "----------\n");
+}
+/**
+ * Test fix bug 58069 for type.
+ * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58069">58069</a>
+ */
+public void test076() {
+ docSupport = true;
+ runNegativeTest(
+ new String[] {
+ "IX.java",
+ "interface IX {\n" +
+ " public static class Problem extends Exception {}\n" +
+ "}\n",
+ "X.java",
+ "public abstract class X {\n" +
+ " public static class Problem extends Exception {}\n" +
+ " public abstract static class InnerClass implements IX {\n" +
+ " /**\n" +
+ " * @throws Problem \n" +
+ " */\n" +
+ " public void foo() throws IllegalArgumentException {\n" +
+ " }\n" +
+ " }\n" +
+ "}\n" +
+ "\n"
+ },
+ "----------\n" +
+ "1. ERROR in X.java (at line 5)\n" +
+ " * @throws Problem \n" +
+ " ^^^^^^^\n" +
+ "Javadoc: The type Problem is defined in an inherited type and an enclosing scope\n" +
+ "----------\n"
+ );
+}
+/**
+ * Test fix bug 58069 for method.
+ * Note that problem is not flagged in doc comments as it is only raised while verifying
+ * implicit method and javadoc resolution does not use it.
+ */
+public void test077() {
+ docSupport = true;
+ this.runNegativeTest(
+ new String[] {
+ "p1/Test.java",
+ "package p1; \n"+
+ "public class Test { \n"+
+ " public static void main(String[] arguments) { \n"+
+ " new Test().foo(); \n"+
+ " } \n"+
+ " String bar() { \n"+
+ " return \"FAILED\"; \n" +
+ " } \n"+
+ " void foo(){ \n"+
+ " /** @see #bar() */\n" +
+ " class Y extends Secondary { \n"+
+ " /** @see #bar() */\n" +
+ " String z = bar(); \n" +
+ " }; \n"+
+ " System.out.println(new Y().z); \n" +
+ " } \n"+
+ "} \n" +
+ "class Secondary { \n" +
+ " String bar(){ return \"FAILED\"; } \n" +
+ "} \n"
+ },
+ "----------\n" +
+ "1. ERROR in p1\\Test.java (at line 13)\n" +
+ " String z = bar(); \n" +
+ " ^^^\n" +
+ "The method bar is defined in an inherited type and an enclosing scope\n" +
+ "----------\n"
+ );
+}
+/**
+ * Test fix bug 58069 for field.
+ * Note that problem is not flagged in doc comments as it is only raised while verifying
+ * Name or Qualified name references and javadoc reference is a field reference.
+ */
+public void test078() {
+ docSupport = true;
+ this.runNegativeTest(
+ new String[] {
+ "p1/Test.java",
+ "package p1; \n"+
+ "public class Test { \n"+
+ " public static void main(String[] arguments) { \n"+
+ " new Test().foo(); \n"+
+ " } \n"+
+ " String bar = \"FAILED\";"+
+ " void foo(){ \n"+
+ " /** @see #bar */\n" +
+ " class Y extends Secondary { \n"+
+ " /** @see #bar */\n" +
+ " String z = bar; \n"+
+ " }; \n"+
+ " System.out.println(new Y().z); \n" +
+ " } \n"+
+ "} \n" +
+ "class Secondary { \n" +
+ " String bar = \"FAILED\"; \n" +
+ "} \n"
+ },
+ "----------\n" +
+ "1. ERROR in p1\\Test.java (at line 10)\n" +
+ " String z = bar; \n" +
+ " ^^^\n" +
+ "The field bar is defined in an inherited type and an enclosing scope \n" +
+ "----------\n"
+ );
+}
public static Class testClass() {
return Compliance_1_3.class;
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_4.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_4.java
index efa1668..9545544 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_4.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_4.java
@@ -21,6 +21,8 @@
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
public class Compliance_1_4 extends AbstractRegressionTest {
+boolean docSupport = false;
+
public Compliance_1_4(String name) {
super(name);
}
@@ -33,10 +35,32 @@
options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_4);
options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4);
options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
+ if (docSupport) {
+ options.put(CompilerOptions.OPTION_DocCommentSupport, CompilerOptions.ENABLED);
+ options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.ERROR);
+ }
return options;
}
public static Test suite() {
- return setupSuite(testClass());
+ return suite(testClass(), null);
+}
+// Use this static initializer to specify subset for tests
+// All specified tests which does not belong to the class are skipped...
+static {
+ // Names of tests to run: can be "testBugXXXX" or "BugXXXX")
+// testsNames = new String[] { "Bug58069" };
+ // Numbers of tests to run: "test<number>" will be run for each number of this array
+// testsNumbers = new int[] { 78 };
+ // Range numbers of tests to run: all tests between "test<first>" and "test<last>" will be run for { first, last }
+// testsRange = new int[] { 76, -1 };
+}
+/* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+protected void setUp() throws Exception {
+ super.setUp();
+ // Javadoc disabled by default
+ docSupport = false;
}
public void test001() {
this.runConformTest(
@@ -2430,6 +2454,123 @@
"Local cannot be resolved to a type\n" +
"----------\n");
}
+public void test075() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X { \n" +
+ " public static void main(String[] args) {\n" +
+ " System.out.println(\"SUCCESS\");\n" +
+ " }\n" +
+ " public void foo(int p1) {} \n" +
+ " public void foo(short p1) {} \n" +
+ "} \n",
+ "Y.java",
+ "public class Y extends X { \n" +
+ " public void foo(long p1) {} \n" +
+ " public void testEc() { foo((short)1); } \n" +
+ "} \n",
+ },
+ "SUCCESS");
+}
+
+/**
+ * Test fix for bug 58069.
+ * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58069">58069</a>
+ */
+public void test076() {
+ docSupport = true;
+ runNegativeTest(
+ new String[] {
+ "IX.java",
+ "interface IX {\n" +
+ " public static class Problem extends Exception {}\n" +
+ "}\n",
+ "X.java",
+ "public abstract class X {\n" +
+ " public static class Problem extends Exception {}\n" +
+ " public abstract static class InnerClass implements IX {\n" +
+ " /**\n" +
+ " * @throws Problem \n" +
+ " */\n" +
+ " public void foo() throws IllegalArgumentException {\n" +
+ " }\n" +
+ " }\n" +
+ "}\n" +
+ "\n"
+ },
+ "----------\n" +
+ "1. ERROR in X.java (at line 5)\n" +
+ " * @throws Problem \n" +
+ " ^^^^^^^\n" +
+ "Javadoc: Exception Problem is not declared\n" +
+ "----------\n"
+ );
+}
+/**
+ * Test fix bug 58069 for method.
+ * Note that problem is not flagged in doc comments as it is only raised while verifying
+ * implicit method and javadoc resolution does not use it.
+ */
+public void test077() {
+ docSupport = true;
+ this.runConformTest(
+ new String[] {
+ "p1/Test.java",
+ "package p1; \n"+
+ "public class Test { \n"+
+ " public static void main(String[] arguments) { \n"+
+ " new Test().foo(); \n"+
+ " } \n"+
+ " String bar() { \n"+
+ " return \"FAILED\"; \n" +
+ " } \n"+
+ " void foo(){ \n"+
+ " /** @see #bar() */\n" +
+ " class Y extends Secondary { \n"+
+ " /** @see #bar() */\n" +
+ " String z = bar(); \n" +
+ " }; \n"+
+ " System.out.println(new Y().z); \n" +
+ " } \n"+
+ "} \n" +
+ "class Secondary { \n" +
+ " String bar(){ return \"FAILED\"; } \n" +
+ "} \n"
+ }
+ );
+}
+/**
+ * Test fix bug 58069 for field.
+ * Note that problem is not flagged in doc comments as it is only raised while verifying
+ * Name or Qualified name references and javadoc reference is a field reference.
+ */
+public void test078() {
+ docSupport = true;
+ this.runConformTest(
+ new String[] {
+ "p1/Test.java",
+ "package p1; \n"+
+ "public class Test { \n"+
+ " public static void main(String[] arguments) { \n"+
+ " new Test().foo(); \n"+
+ " } \n"+
+ " String bar = \"FAILED\";"+
+ " void foo(){ \n"+
+ " /** @see #bar */\n" +
+ " class Y extends Secondary { \n"+
+ " /** @see #bar */\n" +
+ " String z = bar; \n"+
+ " }; \n"+
+ " System.out.println(new Y().z); \n" +
+ " } \n"+
+ "} \n" +
+ "class Secondary { \n" +
+ " String bar = \"FAILED\"; \n" +
+ "} \n"
+ }
+ );
+}
public static Class testClass() {
return Compliance_1_4.class;
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTestMixed.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTestMixed.java
index 89f481b..9616447 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTestMixed.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTestMixed.java
@@ -20,6 +20,7 @@
String localDocCommentSupport = CompilerOptions.ENABLED;
String reportInvalidJavadoc = CompilerOptions.ERROR;
+ String reportMissingJavadocTags = CompilerOptions.ERROR;
String reportMissingJavadocComments = null;
public JavadocTestMixed(String name) {
@@ -52,7 +53,10 @@
options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportMissingJavadocComments);
else
options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportInvalidJavadoc);
- options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportInvalidJavadoc);
+ if (reportMissingJavadocTags != null)
+ options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportMissingJavadocTags);
+ else
+ options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportInvalidJavadoc);
options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
options.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.ERROR);
@@ -66,6 +70,7 @@
super.setUp();
this.localDocCommentSupport = this.docCommentSupport;
reportInvalidJavadoc = CompilerOptions.ERROR;
+ reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocComments = null;
}
@@ -2192,4 +2197,79 @@
"----------\n"
);
}
+
+ /**
+ * Test fix for bug 51911.
+ * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51911">51911</a>
+ */
+ public void testBug51911() {
+ this.reportMissingJavadocComments = CompilerOptions.IGNORE;
+ // Warn an ambiguous method reference
+ runNegativeTest(
+ new String[] {
+ "X.java",
+ "/**\n" +
+ " * @see #foo\n" +
+ " */\n" +
+ "public class X {\n" +
+ " public void foo(int i, float f) {}\n" +
+ " public void foo(String str) {}\n" +
+ "}\n"
+ },
+ "----------\n" +
+ "1. ERROR in X.java (at line 2)\n" +
+ " * @see #foo\n" +
+ " ^^^\n" +
+ "Javadoc: foo is an ambiguous method reference or is not a field\n" +
+ "----------\n"
+ );
+ }
+ public void testBug51911a() {
+ this.reportMissingJavadocComments = CompilerOptions.IGNORE;
+ // Accept unambiguous method reference
+ runConformTest(
+ new String[] {
+ "X.java",
+ "/**\n" +
+ " * @see #foo\n" +
+ " */\n" +
+ "public class X {\n" +
+ " public void foo(String str) {}\n" +
+ "}\n"
+ }
+ );
+ }
+ public void testBug51911b() {
+ this.reportMissingJavadocComments = CompilerOptions.IGNORE;
+ // Accept field reference with method name
+ runConformTest(
+ new String[] {
+ "X.java",
+ "/**\n" +
+ " * @see #foo\n" +
+ " */\n" +
+ "public class X {\n" +
+ " public int foo;\n" +
+ " public void foo(String str) {}\n" +
+ "}\n"
+ }
+ );
+ }
+ public void testBug51911c() {
+ this.reportMissingJavadocComments = CompilerOptions.IGNORE;
+ // Accept field reference with ambiguous method name
+ runConformTest(
+ new String[] {
+ "X.java",
+ "/**\n" +
+ " * @see #foo\n" +
+ " */\n" +
+ "public class X {\n" +
+ " public int foo;\n" +
+ " public void foo() {}\n" +
+ " public void foo(String str) {}\n" +
+ "}\n"
+ }
+ );
+ }
}
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TestAll.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TestAll.java
index f154d3f..e81d91a0 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TestAll.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TestAll.java
@@ -36,6 +36,7 @@
standardTests.add(CastTest.class);
standardTests.add(ClassFileComparatorTest.class);
standardTests.add(ClassFileReaderTest.class);
+ standardTests.add(CollisionCase.class);
standardTests.add(ConstantTest.class);
standardTests.add(DeprecatedTest.class);
standardTests.add(LocalVariableTest.class);
diff --git a/org.eclipse.jdt.core.tests.model/JCL/converterJclMin.jar b/org.eclipse.jdt.core.tests.model/JCL/converterJclMin.jar
index e9d23a1..a86e1f2 100644
--- a/org.eclipse.jdt.core.tests.model/JCL/converterJclMin.jar
+++ b/org.eclipse.jdt.core.tests.model/JCL/converterJclMin.jar
Binary files differ
diff --git a/org.eclipse.jdt.core.tests.model/JCL/converterJclMinsrc.zip b/org.eclipse.jdt.core.tests.model/JCL/converterJclMinsrc.zip
index 9dce906..7e1211a 100644
--- a/org.eclipse.jdt.core.tests.model/JCL/converterJclMinsrc.zip
+++ b/org.eclipse.jdt.core.tests.model/JCL/converterJclMinsrc.zip
Binary files differ
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterJavadocTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterJavadocTest.java
index 576a56f..38d5c8b 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterJavadocTest.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterJavadocTest.java
@@ -191,7 +191,7 @@
}
public ASTNode runConversion(char[] source, String unitName, IJavaProject project) {
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setSource(source);
parser.setUnitName(unitName);
parser.setProject(project);
@@ -1386,6 +1386,7 @@
/**
* Verify DefaultCommentMapper heuristic to get leading and trailing comments
+ * https://bugs.eclipse.org/bugs/show_bug.cgi?id=53445
*/
public void test100() throws JavaModelException {
verifyMapper("test100", 16, new int[] {2,7,8,15});
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest2.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest2.java
index 40e1690..c55f1f7 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest2.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest2.java
@@ -3382,7 +3382,7 @@
assertNotNull("No node", node);
assertTrue("not a method declaration", node.getNodeType() == ASTNode.METHOD_DECLARATION);
MethodDeclaration declaration = (MethodDeclaration) node;
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
parser.setSource(source);
parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
@@ -3418,7 +3418,7 @@
assertNotNull("No node", node);
assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION);
FieldDeclaration declaration = (FieldDeclaration) node;
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
parser.setSource(source);
parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
@@ -3452,7 +3452,7 @@
assertNotNull("No node", node);
assertTrue("not an initializer", node.getNodeType() == ASTNode.INITIALIZER);
Initializer declaration = (Initializer) node;
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
parser.setSource(source);
parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
@@ -3487,7 +3487,7 @@
ASTNode node = getASTNode(unit, 0, 0, 0);
assertNotNull("No node", node);
ASTNode statement = node;
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setKind(ASTParser.K_STATEMENTS);
parser.setSource(source);
parser.setSourceRange(statement.getStartPosition(), statement.getLength());
@@ -3524,7 +3524,7 @@
assertTrue("not a block", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT);
ExpressionStatement expressionStatement = (ExpressionStatement) node;
Expression expression = expressionStatement.getExpression();
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setKind(ASTParser.K_EXPRESSION);
parser.setSource(source);
parser.setSourceRange(expression.getStartPosition(), expression.getLength());
@@ -3564,7 +3564,7 @@
public void worked(int work) {}
}
Counter counter = new Counter();
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setSource(sourceUnit);
parser.setResolveBindings(true);
parser.setWorkingCopyOwner(owner);
@@ -3590,7 +3590,7 @@
for (int i = 0; i < counter.count; i++) {
boolean gotException = false;
try {
- parser = ASTParser.newParser(AST.LEVEL_2_0);
+ parser = ASTParser.newParser(AST.JLS2);
parser.setSource(sourceUnit);
parser.setResolveBindings(true);
parser.setWorkingCopyOwner(owner);
@@ -3602,7 +3602,7 @@
}
// last should not throw an OperationCanceledException
- parser = ASTParser.newParser(AST.LEVEL_2_0);
+ parser = ASTParser.newParser(AST.JLS2);
parser.setSource(sourceUnit);
parser.setResolveBindings(true);
parser.setWorkingCopyOwner(owner);
@@ -4097,7 +4097,7 @@
assertNotNull("No node", node);
assertTrue("not a method declaration", node.getNodeType() == ASTNode.METHOD_DECLARATION);
MethodDeclaration declaration = (MethodDeclaration) node;
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
parser.setSource(source);
parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
@@ -4121,7 +4121,7 @@
assertNotNull("No node", node);
assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION);
FieldDeclaration declaration = (FieldDeclaration) node;
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
parser.setSource(source);
parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
@@ -4145,7 +4145,7 @@
assertNotNull("No node", node);
assertTrue("not an initializer", node.getNodeType() == ASTNode.INITIALIZER);
Initializer declaration = (Initializer) node;
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
parser.setSource(source);
parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
@@ -4201,10 +4201,10 @@
" int i;\n" +
"}"
);
- CompilationUnit unit = sourceUnit.reconcile(AST.LEVEL_2_0, false, null, null);
+ CompilationUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
assertNotNull("No level 2 compilation unit", unit);
- assertEquals("Compilation unit has wrong AST level (2)", AST.LEVEL_2_0, unit.getAST().apiLevel());
- // TODO improve test for AST.LEVEL_3_0
+ assertEquals("Compilation unit has wrong AST level (2)", AST.JLS2, unit.getAST().apiLevel());
+ // TODO improve test for AST.JLS3
} finally {
sourceUnit.discardWorkingCopy();
}
@@ -4235,9 +4235,9 @@
ICompilationUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
try {
sourceUnit.becomeWorkingCopy(null, null);
- CompilationUnit unit = sourceUnit.reconcile(AST.LEVEL_2_0, false, null, null);
+ CompilationUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
assertNull("Unexpected compilation unit", unit);
- // TODO improve test for AST.LEVEL_3_0
+ // TODO improve test for AST.JLS3
} finally {
sourceUnit.discardWorkingCopy();
}
@@ -4256,8 +4256,8 @@
" Object field;\n" +
"}"
);
- // TODO improve test for AST.LEVEL_3_0
- CompilationUnit unit = sourceUnit.reconcile(AST.LEVEL_2_0, false, null, null);
+ // TODO improve test for AST.JLS3
+ CompilationUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
ASTNode node = getASTNode(unit, 0, 0);
assertNotNull("No node", node);
assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION);
@@ -4278,8 +4278,8 @@
try {
ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
sourceUnit.becomeWorkingCopy(pbRequestor, null);
- // TODO improve test for AST.LEVEL_3_0
- CompilationUnit unit = sourceUnit.reconcile(AST.LEVEL_2_0, true/*force pb detection*/, null, null);
+ // TODO improve test for AST.JLS3
+ CompilationUnit unit = sourceUnit.reconcile(AST.JLS2, true/*force pb detection*/, null, null);
ASTNode node = getASTNode(unit, 0);
assertNotNull("No node", node);
assertTrue("not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION);
@@ -4312,8 +4312,8 @@
" }\n" +
"}"
);
- // TODO improve test for AST.LEVEL_3_0
- CompilationUnit unit = sourceUnit.reconcile(AST.LEVEL_2_0, true/*force pb detection*/, null, null);
+ // TODO improve test for AST.JLS3
+ CompilationUnit unit = sourceUnit.reconcile(AST.JLS2, true/*force pb detection*/, null, null);
ASTNode node = getASTNode(unit, 0);
assertNotNull("No node", node);
} finally {
@@ -4342,8 +4342,8 @@
"}"
);
sourceUnit.reconcile(ICompilationUnit.NO_AST, false/* don't force pb detection*/, null, null);
- // TODO improve test for AST.LEVEL_3_0
- CompilationUnit unit = sourceUnit.reconcile(AST.LEVEL_2_0, true/*force pb detection*/, null, null);
+ // TODO improve test for AST.JLS3
+ CompilationUnit unit = sourceUnit.reconcile(AST.JLS2, true/*force pb detection*/, null, null);
ASTNode node = getASTNode(unit, 0);
assertNotNull("No node", node);
} finally {
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTMatcherTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTMatcherTest.java
index 39ab6ef..8cca48d 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTMatcherTest.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTMatcherTest.java
@@ -29,8 +29,8 @@
Method[] methods = c.getMethods();
for (int i = 0, max = methods.length; i < max; i++) {
if (methods[i].getName().startsWith("test")) { //$NON-NLS-1$
- suite.addTest(new ASTMatcherTest(methods[i].getName(), AST.LEVEL_2_0));
- suite.addTest(new ASTMatcherTest(methods[i].getName(), AST.LEVEL_3_0));
+ suite.addTest(new ASTMatcherTest(methods[i].getName(), AST.JLS2));
+ suite.addTest(new ASTMatcherTest(methods[i].getName(), AST.JLS3));
}
}
return suite;
@@ -154,7 +154,7 @@
JD1 = ast.newJavadoc();
JD2 = ast.newJavadoc();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
JD1.setComment("/**X*/"); //$NON-NLS-1$
JD2.setComment("/**Y*/"); //$NON-NLS-1$
}
@@ -179,7 +179,7 @@
MPARM1 = ast.newMethodRefParameter();
MPARM1.setType(ast.newPrimitiveType(PrimitiveType.CHAR));
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
PT1 = ast.newParameterizedType(ast.newSimpleType(ast.newSimpleName("Z"))); //$NON-NLS-1$
PT1S = "[(tM[(tS[(nSZZnS)]tS)]tM)]"; //$NON-NLS-1$
@@ -638,7 +638,7 @@
}
public void testParameterizedType() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
ParameterizedType x1 = ast.newParameterizedType(ast.newSimpleType(ast.newSimpleName("X"))); //$NON-NLS-1$
@@ -648,7 +648,7 @@
}
public void testQualifiedType() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
Type x1 = ast.newQualifiedType(T1, N1);
@@ -656,7 +656,7 @@
}
public void testWildcardType() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
WildcardType x1 = ast.newWildcardType();
@@ -745,7 +745,7 @@
public void testClassInstanceCreation() {
ClassInstanceCreation x1 = ast.newClassInstanceCreation();
x1.setExpression(E1);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
x1.setName(N1);
} else {
x1.typeArguments().add(PT1);
@@ -772,7 +772,7 @@
}
public void testConstructorInvocation() {
ConstructorInvocation x1 = ast.newConstructorInvocation();
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.typeArguments().add(PT1);
}
x1.arguments().add(E1);
@@ -795,7 +795,7 @@
basicMatch(x1);
}
public void testEnhancedForStatement() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
EnhancedForStatement x1 = ast.newEnhancedForStatement();
@@ -805,7 +805,7 @@
basicMatch(x1);
}
public void testEnumConstantDeclaration() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
EnumConstantDeclaration x1 = ast.newEnumConstantDeclaration();
@@ -820,7 +820,7 @@
basicMatch(x1);
}
public void testEnumDeclaration() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
EnumDeclaration x1 = ast.newEnumDeclaration();
@@ -847,7 +847,7 @@
public void testFieldDeclaration() {
FieldDeclaration x1 = ast.newFieldDeclaration(W1);
x1.setJavadoc(JD1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.modifiers().add(MOD1);
x1.modifiers().add(MOD2);
}
@@ -889,7 +889,7 @@
public void testInitializer() {
Initializer x1 = ast.newInitializer();
x1.setJavadoc(JD1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.modifiers().add(MOD1);
x1.modifiers().add(MOD2);
}
@@ -903,7 +903,7 @@
*/
public void testJavadoc() {
Javadoc x1 = ast.newJavadoc();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
x1.setComment("/**?*/"); //$NON-NLS-1$
}
x1.tags().add(TAG1);
@@ -933,7 +933,7 @@
public void testMethodDeclaration() {
MethodDeclaration x1 = ast.newMethodDeclaration();
x1.setJavadoc(JD1);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
x1.setReturnType(T1);
} else {
x1.modifiers().add(MOD1);
@@ -953,7 +953,7 @@
public void testMethodInvocation() {
MethodInvocation x1 = ast.newMethodInvocation();
x1.setExpression(N1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.typeArguments().add(PT1);
}
x1.setName(N2);
@@ -986,7 +986,7 @@
}
public void testPackageDeclaration() {
PackageDeclaration x1 = ast.newPackageDeclaration();
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.setJavadoc(JD1);
x1.annotations().add(ANO1);
x1.annotations().add(ANO2);
@@ -1016,7 +1016,7 @@
}
public void testSingleVariableDeclaration() {
SingleVariableDeclaration x1 = ast.newSingleVariableDeclaration();
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.modifiers().add(MOD1);
x1.modifiers().add(MOD2);
}
@@ -1033,7 +1033,7 @@
public void testSuperConstructorInvocation() {
SuperConstructorInvocation x1 = ast.newSuperConstructorInvocation();
x1.setExpression(N1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.typeArguments().add(PT1);
}
x1.arguments().add(E1);
@@ -1049,7 +1049,7 @@
public void testSuperMethodInvocation() {
SuperMethodInvocation x1 = ast.newSuperMethodInvocation();
x1.setQualifier(N1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.typeArguments().add(PT1);
}
x1.setName(N2);
@@ -1119,7 +1119,7 @@
TypeDeclaration x1 = ast.newTypeDeclaration();
x1.setJavadoc(JD1);
x1.setName(N1);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
x1.setSuperclass(N2);
x1.superInterfaces().add(N3);
x1.superInterfaces().add(N4);
@@ -1146,7 +1146,7 @@
basicMatch(x1);
}
public void testTypeParameter() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
TypeParameter x1 = ast.newTypeParameter();
@@ -1163,7 +1163,7 @@
}
public void testVariableDeclarationExpression() {
VariableDeclarationExpression x1 = ast.newVariableDeclarationExpression(W1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.modifiers().add(MOD1);
x1.modifiers().add(MOD2);
}
@@ -1173,7 +1173,7 @@
}
public void testVariableDeclarationStatement() {
VariableDeclarationStatement x1 = ast.newVariableDeclarationStatement(W1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.modifiers().add(MOD1);
x1.modifiers().add(MOD2);
}
@@ -1190,7 +1190,7 @@
// annotation-related
public void testAnnotationTypeDeclaration() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
AnnotationTypeDeclaration x1 = ast.newAnnotationTypeDeclaration();
@@ -1204,7 +1204,7 @@
}
public void testAnnotationTypeMemberDeclaration() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
AnnotationTypeMemberDeclaration x1 = ast.newAnnotationTypeMemberDeclaration();
@@ -1218,7 +1218,7 @@
}
public void testNormalAnnotation() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
NormalAnnotation x1 = ast.newNormalAnnotation();
@@ -1229,7 +1229,7 @@
}
public void testMarkerAnnotation() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
MarkerAnnotation x1 = ast.newMarkerAnnotation();
@@ -1238,7 +1238,7 @@
}
public void testSingleMemberAnnotation() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
SingleMemberAnnotation x1 = ast.newSingleMemberAnnotation();
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTNodesCollectorVisitor.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTNodesCollectorVisitor.java
index 5814dd1..99c003f 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTNodesCollectorVisitor.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTNodesCollectorVisitor.java
@@ -71,7 +71,7 @@
* @see org.eclipse.jdt.core.dom.ASTVisitor#endVisit(org.eclipse.jdt.core.dom.ClassInstanceCreation)
*/
public void endVisit(ClassInstanceCreation node) {
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
node.setName(
node.getAST().newSimpleName("XXX")); //$NON-NLS-1$
}
@@ -233,7 +233,7 @@
public void endVisit(TypeDeclaration node) {
add(node);
node.setName(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
node.setSuperclass(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$
}
detachedListElement(node.bodyDeclarations());
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTParserTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTParserTest.java
index 6ab1bf4..57dd00e 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTParserTest.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTParserTest.java
@@ -30,8 +30,8 @@
Method[] methods = c.getMethods();
for (int i = 0, max = methods.length; i < max; i++) {
if (methods[i].getName().startsWith("test")) { //$NON-NLS-1$
- suite.addTest(new ASTParserTest(methods[i].getName(), AST.LEVEL_2_0));
- suite.addTest(new ASTParserTest(methods[i].getName(), AST.LEVEL_3_0));
+ suite.addTest(new ASTParserTest(methods[i].getName(), AST.JLS2));
+ suite.addTest(new ASTParserTest(methods[i].getName(), AST.JLS3));
}
}
return suite;
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTStructuralPropertyTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTStructuralPropertyTest.java
index 30e6bbf..1955274 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTStructuralPropertyTest.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTStructuralPropertyTest.java
@@ -31,8 +31,8 @@
Method[] methods = c.getMethods();
for (int i = 0, max = methods.length; i < max; i++) {
if (methods[i].getName().startsWith("test")) { //$NON-NLS-1$
- suite.addTest(new ASTStructuralPropertyTest(methods[i].getName(), AST.LEVEL_2_0));
- suite.addTest(new ASTStructuralPropertyTest(methods[i].getName(), AST.LEVEL_3_0));
+ suite.addTest(new ASTStructuralPropertyTest(methods[i].getName(), AST.JLS2));
+ suite.addTest(new ASTStructuralPropertyTest(methods[i].getName(), AST.JLS3));
}
}
return suite;
@@ -261,7 +261,7 @@
if (nodeClass != null) {
try {
ASTNode node = ast.createInstance(nodeClass);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue((nodeType >= 1) && (nodeType <= 69));
} else {
assertTrue((nodeType >= 1) && (nodeType <= 83));
@@ -270,7 +270,7 @@
//ASTNode node2 = ast.createInstance(nodeType);
//assertTrue(node2.getNodeType() == nodeType);
} catch (RuntimeException e) {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue((nodeType < 1) || (nodeType > 69));
} else {
assertTrue((nodeType < 1) || (nodeType > 83));
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTTest.java
index 672ca2f..98d7171 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTTest.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTTest.java
@@ -733,8 +733,8 @@
Method[] methods = c.getMethods();
for (int i = 0, max = methods.length; i < max; i++) {
if (methods[i].getName().startsWith("test")) { //$NON-NLS-1$
- suite.addTest(new ASTTest(methods[i].getName(), AST.LEVEL_2_0));
- suite.addTest(new ASTTest(methods[i].getName(), AST.LEVEL_3_0));
+ suite.addTest(new ASTTest(methods[i].getName(), AST.JLS2));
+ suite.addTest(new ASTTest(methods[i].getName(), AST.JLS3));
}
}
return suite;
@@ -787,7 +787,7 @@
// /** Spec. \n @deprecated Use {@link #foo() bar} instead. */public class MyClass {}
TypeDeclaration td = localAst.newTypeDeclaration();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
td.setModifiers(Modifier.PUBLIC);
} else {
td.modifiers().add(localAst.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
@@ -830,7 +830,7 @@
f1.setInitializer(localAst.newBooleanLiteral(true));
FieldDeclaration fd = localAst.newFieldDeclaration(f1);
fd.setType(localAst.newPrimitiveType(PrimitiveType.BOOLEAN));
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
fd.setModifiers(Modifier.PRIVATE | Modifier.FINAL);
} else {
fd.modifiers().add(localAst.newModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD));
@@ -841,7 +841,7 @@
// public static void main();
MethodDeclaration md = localAst.newMethodDeclaration();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
md.setModifiers(Modifier.PUBLIC | Modifier.STATIC);
md.setReturnType(localAst.newPrimitiveType(PrimitiveType.VOID));
} else {
@@ -913,7 +913,7 @@
// new String(10);
ClassInstanceCreation cr1 = localAst.newClassInstanceCreation();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
cr1.setName(localAst.newSimpleName("String")); //$NON-NLS-1$
} else {
cr1.setType(localAst.newSimpleType(localAst.newSimpleName("String"))); //$NON-NLS-1$
@@ -926,13 +926,13 @@
ClassInstanceCreation cr2 = localAst.newClassInstanceCreation();
AnonymousClassDeclaration ad1 = localAst.newAnonymousClassDeclaration();
cr2.setAnonymousClassDeclaration(ad1);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
cr2.setName(localAst.newSimpleName("Listener")); //$NON-NLS-1$
} else {
cr2.setType(localAst.newSimpleType(localAst.newSimpleName("Listener"))); //$NON-NLS-1$
}
MethodDeclaration md0 = localAst.newMethodDeclaration();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
md0.setModifiers(Modifier.PUBLIC);
} else {
md0.modifiers().add(localAst.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
@@ -1261,17 +1261,17 @@
public void testAST() {
- assertTrue(AST.LEVEL_2_0 == 2);
- assertTrue(AST.LEVEL_3_0 == 3);
+ assertTrue(AST.JLS2 == 2);
+ assertTrue(AST.JLS3 == 3);
AST a0 = new AST(); // deprecated, but still 2.0
- assertTrue(a0.apiLevel() == AST.LEVEL_2_0);
+ assertTrue(a0.apiLevel() == AST.JLS2);
AST a1 = new AST(new HashMap()); // deprecated, but still 2.0
- assertTrue(a1.apiLevel() == AST.LEVEL_2_0);
- AST a2 = AST.newAST(AST.LEVEL_2_0);
- assertTrue(a2.apiLevel() == AST.LEVEL_2_0);
- AST a3 = AST.newAST(AST.LEVEL_3_0);
- assertTrue(a3.apiLevel() == AST.LEVEL_3_0);
+ assertTrue(a1.apiLevel() == AST.JLS2);
+ AST a2 = AST.newAST(AST.JLS2);
+ assertTrue(a2.apiLevel() == AST.JLS2);
+ AST a3 = AST.newAST(AST.JLS3);
+ assertTrue(a3.apiLevel() == AST.JLS3);
// modification count is always non-negative
@@ -1443,7 +1443,7 @@
fd.setName(ast.newSimpleName("b")); //$NON-NLS-1$
assertTrue(x.isDeclaration() == false);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
AnnotationTypeDeclaration atd = ast.newAnnotationTypeDeclaration();
atd.setName(x);
assertTrue(x.isDeclaration() == true);
@@ -1451,7 +1451,7 @@
assertTrue(x.isDeclaration() == false);
}
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
AnnotationTypeMemberDeclaration atmd = ast.newAnnotationTypeMemberDeclaration();
atmd.setName(x);
assertTrue(x.isDeclaration() == true);
@@ -1960,7 +1960,7 @@
}
public void testParameterizedType() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newParameterizedType(ast.newSimpleType(ast.newSimpleName("String"))); //$NON-NLS-1$
@@ -2039,7 +2039,7 @@
}
public void testQualifiedType() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newQualifiedType(
@@ -2117,7 +2117,7 @@
}
public void testWildcardType() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newWildcardType();
@@ -2209,7 +2209,7 @@
previousCount = ast.modificationCount();
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
assertTrue(x.getJavadoc() == null);
assertTrue(x.annotations().isEmpty());
}
@@ -2219,7 +2219,7 @@
// make sure that reading did not change modification count
assertTrue(ast.modificationCount() == previousCount);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyTest(x, new Property("Javadoc", false, Javadoc.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
Javadoc result = targetAst.newJavadoc();
@@ -2273,7 +2273,7 @@
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
assertTrue(x.isOnDemand() == false);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
assertTrue(x.isStatic() == false);
}
assertTrue(x.getName().getParent() == x);
@@ -2307,7 +2307,7 @@
assertTrue(ast.modificationCount() > previousCount);
assertTrue(x.isOnDemand() == true);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x.setStatic(true);
assertTrue(ast.modificationCount() > previousCount);
assertTrue(x.isStatic() == true);
@@ -2443,7 +2443,7 @@
previousCount = ast.modificationCount();
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(x.getModifiers() == Modifier.NONE);
assertTrue(x.getSuperclass() == null);
assertTrue(x.superInterfaces().size() == 0);
@@ -2468,7 +2468,7 @@
assertTrue(ast.modificationCount() > previousCount);
assertTrue(x.isInterface() == true);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
int legal = Modifier.PUBLIC | Modifier.PROTECTED
| Modifier.PRIVATE | Modifier.ABSTRACT | Modifier.STATIC
| Modifier.FINAL | Modifier.STRICTFP;
@@ -2502,7 +2502,7 @@
}
});
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyListTest(x, x.typeParameters(),
new Property("TypeParameters", true, TypeParameter.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
@@ -2515,7 +2515,7 @@
});
}
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
genericPropertyTest(x, new Property("Superclass", false, Name.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
SimpleName result = targetAst.newSimpleName("foo"); //$NON-NLS-1$
@@ -2533,7 +2533,7 @@
});
}
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
genericPropertyListTest(x, x.superInterfaces(),
new Property("SuperInterfaces", true, Name.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
@@ -2546,7 +2546,7 @@
});
}
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyTest(x, new Property("SuperclassType", false, Type.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
SimpleType result = targetAst.newSimpleType(targetAst.newSimpleName("foo")); //$NON-NLS-1$
@@ -2564,7 +2564,7 @@
});
}
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyListTest(x, x.superInterfaceTypes(),
new Property("SuperInterfaceTypes", true, Type.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
@@ -2610,7 +2610,7 @@
EnumConstantDeclaration c1 = null;
EnumConstantDeclaration c2 = null;
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
c1 = ast.newEnumConstantDeclaration();
c2 = ast.newEnumConstantDeclaration();
x.bodyDeclarations().add(c1);
@@ -2654,7 +2654,7 @@
}
public void testEnumDeclaration() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newEnumDeclaration();
@@ -2774,7 +2774,7 @@
}
public void testEnumConstantDeclaration() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newEnumConstantDeclaration();
@@ -2873,7 +2873,7 @@
}
public void testTypeParameter() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newTypeParameter();
@@ -2930,7 +2930,7 @@
previousCount = ast.modificationCount();
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(x.getModifiers() == Modifier.NONE);
} else {
assertTrue(x.modifiers().size() == 0);
@@ -2946,7 +2946,7 @@
// make sure that reading did not change modification count
assertTrue(ast.modificationCount() == previousCount);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
int legal = Modifier.PUBLIC | Modifier.PROTECTED
| Modifier.PRIVATE | Modifier.STATIC | Modifier.FINAL
| Modifier.TRANSIENT | Modifier.VOLATILE;
@@ -2971,7 +2971,7 @@
assertTrue(ast.modificationCount() > previousCount);
assertTrue(x.getExtraDimensions() == 0);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
previousCount = ast.modificationCount();
x.setVarargs(true);
assertTrue(ast.modificationCount() > previousCount);
@@ -2983,7 +2983,7 @@
assertTrue(x.isVarargs() == false);
}
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyListTest(x, x.modifiers(), new Property("Modifiers", true, IExtendedModifier.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
Modifier result = targetAst.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD);
@@ -3179,7 +3179,7 @@
previousCount = ast.modificationCount();
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(x.getModifiers() == Modifier.NONE);
assertTrue(x.getReturnType().getParent() == x);
assertTrue(x.getReturnType().isPrimitiveType());
@@ -3216,7 +3216,7 @@
assertTrue(ast.modificationCount() > previousCount);
assertTrue(x.isConstructor() == false);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
previousCount = ast.modificationCount();
int legal = Modifier.PUBLIC | Modifier.PROTECTED
| Modifier.PRIVATE | Modifier.ABSTRACT | Modifier.STATIC
@@ -3245,7 +3245,7 @@
tJavadocComment(x);
tModifiers(x);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyListTest(x, x.typeParameters(),
new Property("TypeParameters", true, TypeParameter.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
@@ -3274,7 +3274,7 @@
}
});
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
genericPropertyTest(x, new Property("ReturnType", true, Type.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
SimpleType result = targetAst.newSimpleType(
@@ -3293,7 +3293,7 @@
});
}
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyTest(x, new Property("ReturnType2", false, Type.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
SimpleType result = targetAst.newSimpleType(
@@ -3377,7 +3377,7 @@
}
});
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
// check isVariableArity convenience method
x.parameters().clear();
assertTrue(!x.isVarargs()); // 0 params
@@ -3401,7 +3401,7 @@
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
assertTrue(x.getJavadoc() == null);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(x.getModifiers() == Modifier.NONE);
} else {
assertTrue(x.modifiers().size() == 0);
@@ -3417,7 +3417,7 @@
tJavadocComment(x);
tModifiers(x);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
int legal = Modifier.STATIC;
previousCount = ast.modificationCount();
x.setModifiers(legal);
@@ -3471,7 +3471,7 @@
previousCount = ast.modificationCount();
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(x.getComment().startsWith("/**")); //$NON-NLS-1$
assertTrue(x.getComment().endsWith("*/")); //$NON-NLS-1$
}
@@ -3505,7 +3505,7 @@
assertTrue(TagElement.TAG_VALUE.equals("@value")); //$NON-NLS-1$
assertTrue(TagElement.TAG_VERSION.equals("@version")); //$NON-NLS-1$
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
final String[] samples =
{
"/** Hello there */", //$NON-NLS-1$
@@ -3966,7 +3966,7 @@
previousCount = ast.modificationCount();
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
assertTrue(x.typeArguments().isEmpty());
}
assertTrue(x.getName().getParent() == x);
@@ -4004,7 +4004,7 @@
}
});
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyListTest(x, x.typeArguments(),
new Property("TypeArguments", true, Type.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
@@ -4116,7 +4116,7 @@
previousCount = ast.modificationCount();
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(x.getModifiers() == Modifier.NONE);
} else {
assertTrue(x.modifiers().size() == 0);
@@ -4134,7 +4134,7 @@
tLeadingComment(x);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
int legal = Modifier.FINAL;
previousCount = ast.modificationCount();
x.setModifiers(legal);
@@ -4147,7 +4147,7 @@
assertTrue(x.getModifiers() == Modifier.NONE);
}
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyListTest(x, x.modifiers(), new Property("Modifiers", true, IExtendedModifier.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
Modifier result = targetAst.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD);
@@ -4254,7 +4254,7 @@
previousCount = ast.modificationCount();
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(x.getTypeDeclaration() == x1);
} else {
assertTrue(x.getDeclaration() == x1);
@@ -4273,7 +4273,7 @@
tLeadingComment(x);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
genericPropertyTest(x, new Property("TypeDeclaration", true, TypeDeclaration.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
TypeDeclaration result = targetAst.newTypeDeclaration();
@@ -4305,7 +4305,7 @@
});
}
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyTest(x, new Property("Declaration", true, AbstractTypeDeclaration.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
AbstractTypeDeclaration result = targetAst.newTypeDeclaration();
@@ -4347,7 +4347,7 @@
previousCount = ast.modificationCount();
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(x.getModifiers() == Modifier.NONE);
} else {
assertTrue(x.modifiers().size() == 0);
@@ -4363,7 +4363,7 @@
// make sure that reading did not change modification count
assertTrue(ast.modificationCount() == previousCount);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
int legal = Modifier.FINAL;
previousCount = ast.modificationCount();
x.setModifiers(legal);
@@ -4376,7 +4376,7 @@
assertTrue(x.getModifiers() == Modifier.NONE);
}
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyListTest(x, x.modifiers(), new Property("Modifiers", true, IExtendedModifier.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
Modifier result = targetAst.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD);
@@ -4474,7 +4474,7 @@
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
assertTrue(x.getJavadoc() == null);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(x.getModifiers() == Modifier.NONE);
} else {
assertTrue(x.modifiers().size() == 0);
@@ -4490,7 +4490,7 @@
// make sure that reading did not change modification count
assertTrue(ast.modificationCount() == previousCount);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
int legal = Modifier.PUBLIC | Modifier.PROTECTED
| Modifier.PRIVATE | Modifier.STATIC | Modifier.FINAL
| Modifier.TRANSIENT | Modifier.VOLATILE;
@@ -5340,7 +5340,7 @@
* @param x the body declaration to test
*/
void tModifiers(final BodyDeclaration x) {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
genericPropertyListTest(x, x.modifiers(), new Property("Modifiers", true, IExtendedModifier.class) { //$NON-NLS-1$
@@ -6247,7 +6247,7 @@
* @deprecated (Uses getLeadingComment() which is deprecated)
*/
public void testEnhancedForStatement() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newEnhancedForStatement();
@@ -6336,7 +6336,7 @@
previousCount = ast.modificationCount();
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
assertTrue(x.typeArguments().isEmpty());
}
assertTrue(x.arguments().isEmpty());
@@ -6346,7 +6346,7 @@
// make sure that reading did not change modification count
assertTrue(ast.modificationCount() == previousCount);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyListTest(x, x.typeArguments(),
new Property("TypeArguments", true, Type.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
@@ -6395,7 +6395,7 @@
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
assertTrue(x.getExpression() == null);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
assertTrue(x.typeArguments().isEmpty());
}
assertTrue(x.arguments().isEmpty());
@@ -6437,7 +6437,7 @@
}
});
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyListTest(x, x.typeArguments(),
new Property("TypeArguments", true, Type.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
@@ -6626,7 +6626,7 @@
previousCount = ast.modificationCount();
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
assertTrue(x.typeArguments().isEmpty());
}
assertTrue(x.getName().getParent() == x);
@@ -6656,7 +6656,7 @@
}
});
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyListTest(x, x.typeArguments(),
new Property("TypeArguments", true, Type.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
@@ -7395,7 +7395,7 @@
assertTrue(x.getAST() == ast);
assertTrue(x.getParent() == null);
assertTrue(x.getExpression() == null);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(x.getName().getParent() == x);
} else {
assertTrue(x.typeArguments().isEmpty());
@@ -7435,7 +7435,7 @@
}
});
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyListTest(x, x.typeArguments(),
new Property("TypeArguments", true, Type.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
@@ -7448,7 +7448,7 @@
});
}
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
genericPropertyTest(x, new Property("Name", true, Name.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
SimpleName result = targetAst.newSimpleName("a"); //$NON-NLS-1$
@@ -7466,7 +7466,7 @@
});
}
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
genericPropertyTest(x, new Property("Type", true, Type.class) { //$NON-NLS-1$
public ASTNode sample(AST targetAst, boolean parented) {
SimpleType result = targetAst.newSimpleType(targetAst.newSimpleName("foo")); //$NON-NLS-1$
@@ -7705,7 +7705,7 @@
}
public void testAnnotationTypeDeclaration() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newAnnotationTypeDeclaration();
@@ -7801,7 +7801,7 @@
}
public void testAnnotationTypeMemberDeclaration() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newAnnotationTypeMemberDeclaration();
@@ -7895,7 +7895,7 @@
}
public void testNormalAnnotation() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newNormalAnnotation();
@@ -7955,7 +7955,7 @@
}
public void testMarkerAnnotation() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newMarkerAnnotation();
@@ -7987,7 +7987,7 @@
}
public void testSingleMemberAnnotation() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newSingleMemberAnnotation();
@@ -8047,7 +8047,7 @@
}
public void testMemberValuePair() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newMemberValuePair();
@@ -8191,7 +8191,7 @@
assertTrue(Modifier.isVolatile(m) == (m == Modifier.VOLATILE));
}
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
// node type introduced in 3.0 API
try {
ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD);
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTVisitorTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTVisitorTest.java
index 7ca7dcf..be2ffa5 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTVisitorTest.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTVisitorTest.java
@@ -25,8 +25,8 @@
Method[] methods = c.getMethods();
for (int i = 0, max = methods.length; i < max; i++) {
if (methods[i].getName().startsWith("test")) { //$NON-NLS-1$
- suite.addTest(new ASTVisitorTest(methods[i].getName(), AST.LEVEL_2_0));
- suite.addTest(new ASTVisitorTest(methods[i].getName(), AST.LEVEL_3_0));
+ suite.addTest(new ASTVisitorTest(methods[i].getName(), AST.JLS2));
+ suite.addTest(new ASTVisitorTest(methods[i].getName(), AST.JLS3));
}
}
return suite;
@@ -232,7 +232,7 @@
MPARM1.setType(ast.newPrimitiveType(PrimitiveType.CHAR));
MPARM1S = "[(MPARM[(tPcharchartP)]MPARM)]"; //$NON-NLS-1$
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
PT1 = ast.newParameterizedType(ast.newSimpleType(ast.newSimpleName("Z"))); //$NON-NLS-1$
PT1S = "[(tM[(tS[(nSZZnS)]tS)]tM)]"; //$NON-NLS-1$
@@ -1073,7 +1073,7 @@
}
public void testParameterizedType() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
ParameterizedType x1 = ast.newParameterizedType(T1);
@@ -1087,7 +1087,7 @@
}
public void testQualifiedType() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
QualifiedType x1 = ast.newQualifiedType(T1, N1);
@@ -1099,7 +1099,7 @@
}
public void testWildcardType() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
WildcardType x1 = ast.newWildcardType();
@@ -1242,7 +1242,7 @@
public void testClassInstanceCreation() {
ClassInstanceCreation x1 = ast.newClassInstanceCreation();
x1.setExpression(E1);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
x1.setName(N1);
} else {
x1.typeArguments().add(PT1);
@@ -1253,7 +1253,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(eCI"+E1S+N1S+ACD1S+"eCI)]")); //$NON-NLS-1$ //$NON-NLS-2$
} else {
assertTrue(result.equals("[(eCI"+E1S+PT1S+T1S+ACD1S+"eCI)]")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1302,7 +1302,7 @@
}
public void testConstructorInvocation() {
ConstructorInvocation x1 = ast.newConstructorInvocation();
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.typeArguments().add(PT1);
}
x1.arguments().add(E1);
@@ -1311,7 +1311,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(sCI"+E1S+E2S+"sCI)]")); //$NON-NLS-1$ //$NON-NLS-2$
} else {
assertTrue(result.equals("[(sCI"+PT1S+E1S+E2S+"sCI)]")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1345,7 +1345,7 @@
assertTrue(result.equals("[(sEMsEM)]")); //$NON-NLS-1$
}
public void testEnumConstantDeclaration() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
EnumConstantDeclaration x1 = ast.newEnumConstantDeclaration();
@@ -1364,7 +1364,7 @@
assertTrue(result.equals("[(ECD"+JD1S+MOD1S+MOD2S+N1S+E1S+E2S+FD1S+FD2S+"ECD)]")); //$NON-NLS-1$ //$NON-NLS-2$
}
public void testEnumDeclaration() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
EnumDeclaration x1 = ast.newEnumDeclaration();
@@ -1403,7 +1403,7 @@
public void testFieldDeclaration() {
FieldDeclaration x1 = ast.newFieldDeclaration(W1);
x1.setJavadoc(JD1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.modifiers().add(MOD1);
x1.modifiers().add(MOD2);
}
@@ -1413,7 +1413,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(FD"+JD1S+T1S+W1S+W2S+"FD)]")); //$NON-NLS-1$ //$NON-NLS-2$
} else {
assertTrue(result.equals("[(FD"+JD1S+MOD1S+MOD2S+T1S+W1S+W2S+"FD)]")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1434,7 +1434,7 @@
assertTrue(result.equals("[(sFR"+E1S+E2S+N1S+N2S+N3S+S1S+"sFR)]")); //$NON-NLS-1$ //$NON-NLS-2$
}
public void testEnhancedForStatement() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
EnhancedForStatement x1 = ast.newEnhancedForStatement();
@@ -1493,7 +1493,7 @@
public void testInitializer() {
Initializer x1 = ast.newInitializer();
x1.setJavadoc(JD1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.modifiers().add(MOD1);
x1.modifiers().add(MOD2);
}
@@ -1502,7 +1502,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(IN"+JD1S+B1S+"IN)]")); //$NON-NLS-1$ //$NON-NLS-2$
} else {
assertTrue(result.equals("[(IN"+JD1S+MOD1S+MOD2S+B1S+"IN)]")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1580,7 +1580,7 @@
public void testMethodDeclaration() {
MethodDeclaration x1 = ast.newMethodDeclaration();
x1.setJavadoc(JD1);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
x1.setReturnType(T1);
} else {
x1.modifiers().add(MOD1);
@@ -1598,7 +1598,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(MD"+JD1S+T1S+N1S+V1S+V2S+N2S+N3S+B1S+"MD)]")); //$NON-NLS-1$ //$NON-NLS-2$
} else {
assertTrue(result.equals("[(MD"+JD1S+MOD1S+MOD2S+TP1S+T1S+N1S+V1S+V2S+N2S+N3S+B1S+"MD)]")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1607,7 +1607,7 @@
public void testMethodInvocation() {
MethodInvocation x1 = ast.newMethodInvocation();
x1.setExpression(N1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.typeArguments().add(PT1);
}
x1.setName(N2);
@@ -1617,7 +1617,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(eMI"+N1S+N2S+E1S+E2S+"eMI)]")); //$NON-NLS-1$ //$NON-NLS-2$
} else {
assertTrue(result.equals("[(eMI"+N1S+PT1S+N2S+E1S+E2S+"eMI)]")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1648,7 +1648,7 @@
}
public void testModifier() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
Modifier x1 = ast.newModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD);
@@ -1660,7 +1660,7 @@
}
public void testNormalAnnotation() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
NormalAnnotation x1 = ast.newNormalAnnotation();
@@ -1675,7 +1675,7 @@
}
public void testMemberValuePair() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
MemberValuePair x1 = ast.newMemberValuePair();
@@ -1689,7 +1689,7 @@
}
public void testMarkerAnnotation() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
MarkerAnnotation x1 = ast.newMarkerAnnotation();
@@ -1702,7 +1702,7 @@
}
public void testSingleMemberAnnotation() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
SingleMemberAnnotation x1 = ast.newSingleMemberAnnotation();
@@ -1716,7 +1716,7 @@
}
public void testAnnotationTypeDeclaration() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
AnnotationTypeDeclaration x1 = ast.newAnnotationTypeDeclaration();
@@ -1734,7 +1734,7 @@
}
public void testAnnotationTypeMemberDeclaration() {
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
return;
}
AnnotationTypeMemberDeclaration x1 = ast.newAnnotationTypeMemberDeclaration();
@@ -1769,7 +1769,7 @@
}
public void testPackageDeclaration() {
PackageDeclaration x1 = ast.newPackageDeclaration();
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.setJavadoc(JD1);
x1.annotations().add(ANO1);
x1.annotations().add(ANO2);
@@ -1779,7 +1779,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(PD"+N1S+"PD)]")); //$NON-NLS-1$ //$NON-NLS-2$
} else {
assertTrue(result.equals("[(PD"+JD1S+ANO1S+ANO2S+N1S+"PD)]")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1835,7 +1835,7 @@
public void testSuperConstructorInvocation() {
SuperConstructorInvocation x1 = ast.newSuperConstructorInvocation();
x1.setExpression(N1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.typeArguments().add(PT1);
}
x1.arguments().add(E1);
@@ -1844,7 +1844,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(sSC"+N1S+E1S+E2S+"sSC)]")); //$NON-NLS-1$ //$NON-NLS-2$
} else {
assertTrue(result.equals("[(sSC"+N1S+PT1S+E1S+E2S+"sSC)]")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1863,7 +1863,7 @@
public void testSuperMethodInvocation() {
SuperMethodInvocation x1 = ast.newSuperMethodInvocation();
x1.setQualifier(N1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.typeArguments().add(PT1);
}
x1.setName(N2);
@@ -1873,7 +1873,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(eSM"+N1S+N2S+E1S+E2S+"eSM)]")); //$NON-NLS-1$ //$NON-NLS-2$
} else {
assertTrue(result.equals("[(eSM"+N1S+PT1S+N2S+E1S+E2S+"eSM)]")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1971,7 +1971,7 @@
TypeDeclaration x1 = ast.newTypeDeclaration();
x1.setJavadoc(JD1);
x1.setName(N1);
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
x1.setSuperclass(N2);
x1.superInterfaces().add(N3);
x1.superInterfaces().add(N4);
@@ -1989,7 +1989,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(TD"+JD1S+N1S+N2S+N3S+N4S+FD1S+FD2S+"TD)]")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
} else {
assertTrue(result.equals("[(TD"+JD1S+MOD1S+MOD2S+N1S+TP1S+PT1S+T1S+T2S+FD1S+FD2S+"TD)]")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -2014,7 +2014,7 @@
}
public void testSingleVariableDeclaration() {
SingleVariableDeclaration x1 = ast.newSingleVariableDeclaration();
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.modifiers().add(MOD1);
x1.modifiers().add(MOD2);
}
@@ -2025,7 +2025,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(VD"+T1S+N1S+E1S+"VD)]")); //$NON-NLS-1$ //$NON-NLS-2$
} else {
assertTrue(result.equals("[(VD"+MOD1S+MOD2S+T1S+N1S+E1S+"VD)]")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -2043,7 +2043,7 @@
}
public void testVariableDeclarationExpression() {
VariableDeclarationExpression x1 = ast.newVariableDeclarationExpression(W1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.modifiers().add(MOD1);
x1.modifiers().add(MOD2);
}
@@ -2053,7 +2053,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(eVD"+T1S+W1S+W2S+"eVD)]")); //$NON-NLS-1$ //$NON-NLS-2$
} else {
assertTrue(result.equals("[(eVD"+MOD1S+MOD2S+T1S+W1S+W2S+"eVD)]")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -2061,7 +2061,7 @@
}
public void testVariableDeclarationStatement() {
VariableDeclarationStatement x1 = ast.newVariableDeclarationStatement(W1);
- if (ast.apiLevel() >= AST.LEVEL_3_0) {
+ if (ast.apiLevel() >= AST.JLS3) {
x1.modifiers().add(MOD1);
x1.modifiers().add(MOD2);
}
@@ -2071,7 +2071,7 @@
b.setLength(0);
x1.accept(v1);
String result = b.toString();
- if (ast.apiLevel() == AST.LEVEL_2_0) {
+ if (ast.apiLevel() == AST.JLS2) {
assertTrue(result.equals("[(sVD"+T1S+W1S+W2S+"sVD)]")); //$NON-NLS-1$ //$NON-NLS-2$
} else {
assertTrue(result.equals("[(sVD"+MOD1S+MOD2S+T1S+W1S+W2S+"sVD)]")); //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/BindingsCollectorVisitor.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/BindingsCollectorVisitor.java
index 9158d1a..549511e 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/BindingsCollectorVisitor.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/BindingsCollectorVisitor.java
@@ -14,8 +14,6 @@
import java.util.HashSet;
import org.eclipse.jdt.core.dom.*;
-import org.eclipse.jdt.core.dom.ASTVisitor;
-
/**
* @author oliviert
*
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ConverterTestSetup.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ConverterTestSetup.java
index 563b83f..24810e7 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ConverterTestSetup.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ConverterTestSetup.java
@@ -103,7 +103,7 @@
public void setUpSuite() throws Exception {
super.setUpSuite();
setupConverterJCL();
- ast = AST.newAST(AST.LEVEL_2_0);
+ ast = AST.newAST(AST.JLS2);
setUpJavaProject("Converter"); //$NON-NLS-1$
Map options = JavaCore.getDefaultOptions();
@@ -128,19 +128,19 @@
}
public ASTNode runConversion(ICompilationUnit unit, boolean resolveBindings) {
- return runConversion(AST.LEVEL_2_0, unit, resolveBindings);
+ return runConversion(AST.JLS2, unit, resolveBindings);
}
public ASTNode runConversion(ICompilationUnit unit, int position, boolean resolveBindings) {
- return runConversion(AST.LEVEL_2_0, unit, position, resolveBindings);
+ return runConversion(AST.JLS2, unit, position, resolveBindings);
}
public ASTNode runConversion(IClassFile classFile, int position, boolean resolveBindings) {
- return runConversion(AST.LEVEL_2_0, classFile, position, resolveBindings);
+ return runConversion(AST.JLS2, classFile, position, resolveBindings);
}
public ASTNode runConversion(char[] source, String unitName, IJavaProject project) {
- return runConversion(AST.LEVEL_2_0, source, unitName, project);
+ return runConversion(AST.JLS2, source, unitName, project);
}
public ASTNode runConversion(int astLevel, ICompilationUnit unit, boolean resolveBindings) {
@@ -175,7 +175,7 @@
}
public ASTNode runConversion(char[] source, String unitName, IJavaProject project, Map options) {
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setSource(source);
parser.setUnitName(unitName);
parser.setProject(project);
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/SampleASTs.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/SampleASTs.java
index 8dff887..998cb0d 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/SampleASTs.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/SampleASTs.java
@@ -50,7 +50,7 @@
Initializer in = target.newInitializer();
td.bodyDeclarations().add(in);
- if (target.apiLevel() >= AST.LEVEL_3_0) {
+ if (target.apiLevel() >= AST.JLS3) {
EnumDeclaration ed = target.newEnumDeclaration();
td.bodyDeclarations().add(ed);
EnumConstantDeclaration ec = target.newEnumConstantDeclaration();
@@ -70,7 +70,7 @@
ArrayType at = target.newArrayType(pt);
fd.setType(at);
- if (target.apiLevel() >= AST.LEVEL_3_0) {
+ if (target.apiLevel() >= AST.JLS3) {
SimpleType st = target.newSimpleType(qn);
QualifiedType qt = target.newQualifiedType(st, target.newSimpleName("x")); //$NON-NLS-1$
WildcardType wt = target.newWildcardType();
@@ -103,7 +103,7 @@
b.statements().add(expressionStatement);
ForStatement forStatement = target.newForStatement();
b.statements().add(forStatement);
- if (target.apiLevel() >= AST.LEVEL_3_0) {
+ if (target.apiLevel() >= AST.JLS3) {
EnhancedForStatement foreachStatement = target.newEnhancedForStatement();
b.statements().add(foreachStatement);
}
@@ -201,7 +201,7 @@
z.add(variableDeclarationExpression);
// annotations
- if (target.apiLevel() >= AST.LEVEL_3_0) {
+ if (target.apiLevel() >= AST.JLS3) {
AnnotationTypeDeclaration atd = target.newAnnotationTypeDeclaration();
cu.types().add(atd);
atd.bodyDeclarations().add(target.newAnnotationTypeMemberDeclaration());
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java
index 4eca436..c7f7003 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java
@@ -55,7 +55,7 @@
return new Suite(FormatterRegressionTests.class);
}
junit.framework.TestSuite suite = new Suite(FormatterRegressionTests.class.getName());
- suite.addTest(new FormatterRegressionTests("test489")); //$NON-NLS-1$
+ suite.addTest(new FormatterRegressionTests("test493")); //$NON-NLS-1$
return suite;
}
@@ -121,7 +121,7 @@
//time = System.currentTimeMillis();
edit = codeFormatter.format(kind, result, 0, result.length(), indentationLevel, lineSeparator);//$NON-NLS-1$
if (edit == null) return null;
-// assertEquals("Shoult not have edits", 0, edit.getChildren().length);
+// assertEquals("Should not have edits", 0, edit.getChildren().length);
final String result2 = org.eclipse.jdt.internal.core.util.Util.editedString(result, edit);
if (!result.equals(result2)) {
assertSourceEquals("Different reformatting", Util.convertToIndependantLineDelimiter(result), Util.convertToIndependantLineDelimiter(result2));
@@ -6295,4 +6295,43 @@
DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
runTest(codeFormatter, "test490", "A.java", CodeFormatter.K_COMPILATION_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
}
+
+ /**
+ * https://bugs.eclipse.org/bugs/show_bug.cgi?id=59451
+ */
+ public void _test491() {
+ String resourcePath = getResource("test491", "formatter.xml");
+ Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "DOI");
+ assertNotNull("No preferences", options);
+ DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
+ DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
+ runTest(codeFormatter, "test491", "BundleChain.java", CodeFormatter.K_COMPILATION_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * https://bugs.eclipse.org/bugs/show_bug.cgi?id=59575
+ */
+ public void test492() {
+ String resourcePath = getResource("test492", "core_formatting.xml");
+ Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "core");
+ assertNotNull("No preferences", options);
+ options.put(JavaCore.COMPILER_PB_NON_NLS_STRING_LITERAL, JavaCore.ERROR);
+ DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
+ DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, options);
+ runTest(codeFormatter, "test492", "Main.java", CodeFormatter.K_COMPILATION_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * https://bugs.eclipse.org/bugs/show_bug.cgi?id=59716
+ */
+ public void test493() {
+ Map options = DefaultCodeFormatterConstants.getDefaultSettings();
+ options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_PACKAGE, "1");
+ options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_PACKAGE, "1");
+ options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_IMPORTS, "1");
+ options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_IMPORTS, "1");
+ DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
+ DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
+ runTest(codeFormatter, "test493", "MyClass.java", CodeFormatter.K_COMPILATION_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
+ }
}
\ No newline at end of file
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AttachSourceTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AttachSourceTests.java
index 16d4bab..0f3a499 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AttachSourceTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AttachSourceTests.java
@@ -40,7 +40,7 @@
return new Suite(AttachSourceTests.class);
}
public ASTNode runConversion(IClassFile classFile, boolean resolveBindings) {
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setSource(classFile);
parser.setResolveBindings(resolveBindings);
parser.setWorkingCopyOwner(null);
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ClasspathInitializerTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ClasspathInitializerTests.java
index 94abfde..c5d6511 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ClasspathInitializerTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ClasspathInitializerTests.java
@@ -15,6 +15,7 @@
import org.eclipse.core.resources.IResourceChangeEvent;
import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.*;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
@@ -403,6 +404,33 @@
this.deleteProject("P2");
}
}
+/*
+ * Ensure that an OperationCanceledException goes through
+ * (regression test for bug 59363 Should surface cancellation exceptions)
+ */
+public void testContainerInitializer7() throws CoreException {
+ try {
+ boolean gotException = false;
+ try {
+ ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P1", "/P1/lib.jar"}) {
+ public void initialize(IPath containerPath, IJavaProject project) throws CoreException {
+ throw new OperationCanceledException("test");
+ }});
+ IJavaProject p1 = this.createJavaProject(
+ "P1",
+ new String[] {},
+ new String[] {"org.eclipse.jdt.core.tests.model.TEST_CONTAINER"},
+ "");
+ p1.getResolvedClasspath(true);
+ } catch (OperationCanceledException e) {
+ gotException = true;
+ }
+ assertTrue("Should get an OperationCanceledException", gotException);
+ } finally {
+ stopDeltas();
+ this.deleteProject("P1");
+ }
+}
public void testVariableInitializer1() throws CoreException {
try {
this.createProject("P1");
@@ -593,4 +621,29 @@
VariablesInitializer.reset();
}
}
+/*
+ * Ensure that an OperationCanceledException goes through
+ * (regression test for bug 59363 Should surface cancellation exceptions)
+ */
+
+public void testVariableInitializer8() throws CoreException {
+ try {
+ boolean gotException = false;
+ try {
+ VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] {"TEST_LIB", "/P1/lib.jar"}) {
+ public void initialize(String variable) throws JavaModelException {
+ throw new OperationCanceledException("test");
+ }
+ });
+ IJavaProject p1 = this.createJavaProject("P1", new String[] {}, new String[] {"TEST_LIB"}, "");
+ p1.getResolvedClasspath(true);
+ } catch (OperationCanceledException e) {
+ gotException = true;
+ }
+ assertTrue("Should get an OperationCanceledException", gotException);
+ } finally {
+ this.deleteProject("P1");
+ VariablesInitializer.reset();
+ }
+}
}
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/WorkingCopyOwnerTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/WorkingCopyOwnerTests.java
index 305b74e..dccca45 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/WorkingCopyOwnerTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/WorkingCopyOwnerTests.java
@@ -932,7 +932,7 @@
);
workingCopy2.makeConsistent(null);
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setSource(workingCopy1);
parser.setResolveBindings(true);
parser.setWorkingCopyOwner(owner);
@@ -972,7 +972,7 @@
char[] source = (
"public class Z extends Y {\n" +
"}").toCharArray();
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setSource(source);
parser.setUnitName("Z.java");
parser.setProject(getJavaProject("P"));
@@ -1040,7 +1040,7 @@
// parse and resolve class file
IClassFile classFile = getClassFile("P1/lib/X.class");
- ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setSource(classFile);
parser.setResolveBindings(true);
parser.setWorkingCopyOwner(owner);
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTest.java
index 4084ba8..94af45a 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTest.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTest.java
@@ -98,7 +98,7 @@
}
protected CompilationUnit createAST(ICompilationUnit cu) {
- ASTParser parser= ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser parser= ASTParser.newParser(AST.JLS2);
parser.setSource(cu);
parser.setResolveBindings(false);
return (CompilationUnit) parser.createAST(null);
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/modifying/ASTRewritingModifyingTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/modifying/ASTRewritingModifyingTest.java
index 8f2a242..a5d9c93 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/modifying/ASTRewritingModifyingTest.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/modifying/ASTRewritingModifyingTest.java
@@ -81,7 +81,7 @@
boolean resolveBindings) {
try {
- ASTParser c = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser c = ASTParser.newParser(AST.JLS2);
c.setSource(unit);
c.setResolveBindings(resolveBindings);
ASTNode result = c.createAST(null);
@@ -96,7 +96,7 @@
if (source == null) {
throw new IllegalArgumentException();
}
- ASTParser c = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser c = ASTParser.newParser(AST.JLS2);
c.setSource(source);
ASTNode result = c.createAST(null);
return (CompilationUnit) result;
diff --git a/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java b/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java
index a7a2ad2..2322200 100644
--- a/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java
+++ b/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java
@@ -329,8 +329,6 @@
}
} catch (InvalidInputException e) {
this.err.println(e.getMessage());
- this.err.println("------------------------"); //$NON-NLS-1$
- printUsage();
if (this.systemExitWhenFinished) {
System.exit(-1);
}
@@ -1656,7 +1654,7 @@
}
}
public void printUsage() {
- this.out.println(Main.bind("misc.usage")); //$NON-NLS-1$
+ this.out.println(Main.bind("misc.usage", System.getProperty("path.separator"))); //$NON-NLS-1$//$NON-NLS-2$
this.out.flush();
this.err.flush();
}
diff --git a/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties b/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
index 9800fd3..77cb330 100644
--- a/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
+++ b/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
@@ -12,7 +12,7 @@
### compiler
compiler.name = Eclipse Java Compiler
-compiler.version = 0.422_Cheetah04
+compiler.version = 0.424_Cheetah04
compiler.copyright = Copyright IBM Corp 2000, 2004. All rights reserved.
### scanning
@@ -87,9 +87,9 @@
\ Possible options are listed below. Options enabled by default are prefixed with ''+''\n\
\ \n\
\ Classpath options:\n\
-\ -cp -classpath <directories and zip/jar files separated by ;>\n\
+\ -cp -classpath <directories and zip/jar files separated by {0}>\n\
\ specify location for application classes and sources\n\
-\ -bootclasspath <directories and zip/jar files separated by ;>\n\
+\ -bootclasspath <directories and zip/jar files separated by {0}>\n\
\ specify location for system classes\n\
\ -d <dir> destination directory (if omitted, no directory is created)\n\
\ -d none generate no .class files\n\
diff --git a/org.eclipse.jdt.core/buildnotes_jdt-core.html b/org.eclipse.jdt.core/buildnotes_jdt-core.html
index f71fcd6..5eb7ae2 100644
--- a/org.eclipse.jdt.core/buildnotes_jdt-core.html
+++ b/org.eclipse.jdt.core/buildnotes_jdt-core.html
@@ -124,6 +124,64 @@
[1.5] ArrayStoreException in 1.5 parser
+<a name="v_424"></a>
+<p><hr><h1>
+Eclipse Platform Build Notes <br>
+Java Development Tooling Core</h1>
+Eclipse SDK 3.0M9 Build - ? April 2004
+<br>Project org.eclipse.jdt.core v_424
+(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_424">cvs</a>).
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58069">58069</a>
+Compilation ERROR: Missing code implementation in the compiler
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51911">51911</a>
+@see method w/out ()
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49025">49025</a>
+Util.bind(String, String[]) can be optimized a little bit
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59743">59743</a>
+[Compiler] Incorrect diagnosis of ambiguous method when inheriting
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=57871">57871</a>
+Override Indicator: blocks editor from opening when error occurs in java compiler
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59421">59421</a>
+Bad error message from Eclipse Java Compiler when file is missing
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58946">58946</a>
+Standalone compiler help text is incorrect on Unix
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59084">59084</a>
+[content type] ensure content types/file associations are contributed by the right plugins
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59716">59716</a>
+Using 200404201300, one more blank line is inserted in front of import declarations when no package is defined
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59575">59575</a>
+invalid formatting
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51213">51213</a>
+Unable to resolve conflict between type and package name in binaries
+
+<a name="v_423"></a>
+<p><hr><h1>
+Eclipse Platform Build Notes <br>
+Java Development Tooling Core</h1>
+Eclipse SDK 3.0M9 Build - 22nd April 2004
+<br>Project org.eclipse.jdt.core v_423
+(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_423">cvs</a>).
+<h2>
+What's new in this drop</h2>
+<ul>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59363">59363</a>
+Should surface cancellation exceptions
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51075">51075</a>
+Compiler warning "is hiding a field" given for static inner class
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38658">38658</a>
+Search for existing type fails
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59291">59291</a>
+Deadlock between AllTypes cache and setClasspathContainer
+
<a name="v_422"></a>
<p><hr><h1>
Eclipse Platform Build Notes <br>
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/IProblem.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/IProblem.java
index 6151ae9..d23d739 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/IProblem.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/IProblem.java
@@ -810,7 +810,15 @@
/** @since 3.0 */
int JavadocInternalTypeNameProvided = Javadoc + Internal + 507;
/** @since 3.0 */
- int JavadocMessagePrefix = Internal + 509;
+ int JavadocInheritedMethodHidesEnclosingName = Javadoc + Internal + 508;
+ /** @since 3.0 */
+ int JavadocInheritedFieldHidesEnclosingName = Javadoc + Internal + 509;
+ /** @since 3.0 */
+ int JavadocInheritedNameHidesEnclosingTypeName = Javadoc + Internal + 510;
+ /** @since 3.0 */
+ int JavadocAmbiguousMethodReference = Javadoc + Internal + 511;
+ /** @since 3.0 */
+ int JavadocMessagePrefix = Internal + 512;
/**
* Generics
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java
index d2c35a2..670de04 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java
@@ -127,7 +127,7 @@
return this.binding.isStatic();
return (this.modifiers & AccStatic) != 0;
}
-
+
public void resolve(MethodScope initializationScope) {
// the two <constant = Constant.NotAConstant> could be regrouped into
@@ -140,21 +140,28 @@
this.hasBeenResolved = true;
// check if field is hiding some variable - issue is that field binding already got inserted in scope
+ // thus must lookup separately in super type and outer context
ClassScope classScope = initializationScope.enclosingClassScope();
+
if (classScope != null) {
SourceTypeBinding declaringType = classScope.enclosingSourceType();
boolean checkLocal = true;
if (declaringType.superclass != null) {
- Binding existingVariable = classScope.findField(declaringType.superclass, this.name, this, true /*resolve*/);
- if (existingVariable != null && existingVariable.isValidBinding()) {
+ Binding existingVariable = classScope.findField(declaringType.superclass, this.name, this, false /*do not resolve hidden field*/);
+ if (existingVariable != null && existingVariable.isValidBinding()){
initializationScope.problemReporter().fieldHiding(this, existingVariable);
checkLocal = false; // already found a matching field
}
}
if (checkLocal) {
Scope outerScope = classScope.parent;
+ // only corner case is: lookup of outer field through static declaringType, which isn't detected by #getBinding as lookup starts
+ // from outer scope. Subsequent static contexts are detected for free.
Binding existingVariable = outerScope.getBinding(this.name, BindingIds.VARIABLE, this, false /*do not resolve hidden field*/);
- if (existingVariable != null && existingVariable.isValidBinding()){
+ if (existingVariable != null && existingVariable.isValidBinding()
+ && (!(existingVariable instanceof FieldBinding)
+ || ((FieldBinding) existingVariable).isStatic()
+ || !declaringType.isStatic())) {
initializationScope.problemReporter().fieldHiding(this, existingVariable);
}
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/Javadoc.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/Javadoc.java
index b3bfdd2..0da3e33 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/Javadoc.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/Javadoc.java
@@ -100,7 +100,24 @@
// @see tags
int seeTagsLength = this.references == null ? 0 : this.references.length;
for (int i = 0; i < seeTagsLength; i++) {
+
+ // Resolve reference
this.references[i].resolveType(classScope);
+
+ // Some unbound field reference might be changed to message send
+ // see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=51911
+ if (this.references[i] instanceof JavadocFieldReference) {
+ JavadocFieldReference fieldRef = (JavadocFieldReference) this.references[i];
+ if (fieldRef.receiverType != null && fieldRef.binding == null) { // binding was reset in case of valid method reference
+ JavadocMessageSend msgSend = new JavadocMessageSend(fieldRef.token, fieldRef.nameSourcePosition);
+ msgSend.receiver = fieldRef.receiver;
+ msgSend.receiverType = fieldRef.receiverType;
+ msgSend.qualifyingType = fieldRef.receiverType;
+ msgSend.superAccess = classScope.enclosingSourceType().isCompatibleWith(msgSend.receiverType);
+ msgSend.binding = classScope.findMethod((ReferenceBinding)msgSend.receiverType, msgSend.selector, new TypeBinding[0], msgSend);
+ this.references[i] = msgSend;
+ }
+ }
}
}
@@ -117,9 +134,27 @@
int seeTagsLength = this.references == null ? 0 : this.references.length;
boolean superRef = false;
for (int i = 0; i < seeTagsLength; i++) {
+
+ // Resolve reference
this.references[i].resolveType(methScope);
+
+ // Some unbound field reference might be changed to message send
+ // see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=51911
+ if (this.references[i] instanceof JavadocFieldReference) {
+ JavadocFieldReference fieldRef = (JavadocFieldReference) this.references[i];
+ if (fieldRef.receiverType != null && fieldRef.binding == null) { // binding was reset in case of valid method reference
+ JavadocMessageSend msgSend = new JavadocMessageSend(fieldRef.token, fieldRef.nameSourcePosition);
+ msgSend.receiver = fieldRef.receiver;
+ msgSend.receiverType = fieldRef.receiverType;
+ msgSend.qualifyingType = fieldRef.receiverType;
+ msgSend.superAccess = methScope.enclosingSourceType().isCompatibleWith(msgSend.receiverType);
+ msgSend.binding = methScope.findMethod((ReferenceBinding)msgSend.receiverType, msgSend.selector, new TypeBinding[0], msgSend);
+ this.references[i] = msgSend;
+ }
+ }
+
+ // see whether we can have a super reference
try {
- // see whether we can have a super reference
if (methDecl != null && (methDecl.isConstructor() || overriding) && !superRef) {
if (this.references[i] instanceof JavadocMessageSend) {
JavadocMessageSend messageSend = (JavadocMessageSend) this.references[i];
@@ -154,7 +189,7 @@
}
}
catch (Exception e) {
- // Something wrong happen, forgot super ref...
+ // Something wrong happen, forget super ref...
}
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/JavadocFieldReference.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/JavadocFieldReference.java
index f698c5e..db8d3ad 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/JavadocFieldReference.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/JavadocFieldReference.java
@@ -41,8 +41,25 @@
this.binding = scope.getField(this.receiverType, this.token, this);
if (!this.binding.isValidBinding()) {
- scope.problemReporter().javadocInvalidField(this, this.receiverType, scope.getDeclarationModifiers());
- return null;
+ if (this.receiverType instanceof ReferenceBinding) {
+ ReferenceBinding refBinding = (ReferenceBinding) this.receiverType;
+ MethodBinding[] bindings = refBinding.getMethods(this.token);
+ if (bindings == null) {
+ scope.problemReporter().javadocInvalidField(this, this.receiverType, scope.getDeclarationModifiers());
+ return null;
+ }
+ switch (bindings.length) {
+ case 0:
+ scope.problemReporter().javadocInvalidField(this, this.receiverType, scope.getDeclarationModifiers());
+ return null;
+ case 1:
+ this.binding = null;
+ return null;
+ default:
+ scope.problemReporter().javadocAmbiguousMethodReference(this, scope.getDeclarationModifiers());
+ return null;
+ }
+ }
}
if (isFieldUseDeprecated(this.binding, scope, (this.bits & IsStrictlyAssignedMASK) != 0)) {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/DefaultProblemFactory.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/DefaultProblemFactory.java
index b75da6f..065c525 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/DefaultProblemFactory.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/DefaultProblemFactory.java
@@ -60,7 +60,8 @@
* </ul>
* @param originatingFileName char[]
* @param problemId int
- * @param arguments String[]
+ * @param problemArguments String[]
+ * @param messageArguments String[]
* @param severity int
* @param startPosition int
* @param endPosition int
@@ -95,14 +96,10 @@
* @return java.util.Locale
*/
public Locale getLocale() {
- return locale;
+ return this.locale;
}
public final String getLocalizedMessage(int id, String[] problemArguments) {
- StringBuffer output = new StringBuffer(80);
- if ((id & IProblem.Javadoc) != 0) {
- output.append((String)messageTemplates.get(keyFromID(IProblem.JavadocMessagePrefix & IProblem.IgnoreCategoriesMask)));
- }
- String message = (String)messageTemplates.get(keyFromID(id & IProblem.IgnoreCategoriesMask));
+ String message = (String) this.messageTemplates.get(keyFromID(id & IProblem.IgnoreCategoriesMask));
if (message == null) {
return "Unable to retrieve the error message for problem id: " //$NON-NLS-1$
+ (id & IProblem.IgnoreCategoriesMask)
@@ -112,19 +109,29 @@
// for compatibility with MessageFormat which eliminates double quotes in original message
char[] messageWithNoDoubleQuotes =
CharOperation.replace(message.toCharArray(), DOUBLE_QUOTES, SINGLE_QUOTE);
- message = new String(messageWithNoDoubleQuotes);
- int length = message.length();
- int start = -1, end = length;
+ if (problemArguments == null) return new String(messageWithNoDoubleQuotes);
+
+ int length = messageWithNoDoubleQuotes.length;
+ int start = 0;
+ int end = length;
+ StringBuffer output = null;
+ if ((id & IProblem.Javadoc) != 0) {
+ if (output == null) output = new StringBuffer(10+length+problemArguments.length*20);
+ output.append((String) this.messageTemplates.get(keyFromID(IProblem.JavadocMessagePrefix & IProblem.IgnoreCategoriesMask)));
+ }
while (true) {
- if ((end = message.indexOf('{', start)) > -1) {
- output.append(message.substring(start + 1, end));
- if ((start = message.indexOf('}', end)) > -1) {
+ if ((end = CharOperation.indexOf('{', messageWithNoDoubleQuotes, start)) > -1) {
+ if (output == null) output = new StringBuffer(length+problemArguments.length*20);
+ output.append(messageWithNoDoubleQuotes, start, end - start);
+ if ((start = CharOperation.indexOf('}', messageWithNoDoubleQuotes, end + 1)) > -1) {
+ int index = -1;
+ String argId = new String(messageWithNoDoubleQuotes, end + 1, start - end - 1);
try {
- output.append(
- problemArguments[Integer.parseInt(message.substring(end + 1, start))]);
+ index = Integer.parseInt(argId);
+ output.append(problemArguments[index]);
} catch (NumberFormatException nfe) {
- output.append(message.substring(end + 1, start + 1));
+ output.append(messageWithNoDoubleQuotes, end + 1, start - end);
} catch (ArrayIndexOutOfBoundsException e) {
return "Cannot bind message for problem (id: " //$NON-NLS-1$
+ (id & IProblem.IgnoreCategoriesMask)
@@ -134,15 +141,18 @@
+ Util.toString(problemArguments)
+"}"; //$NON-NLS-1$
}
+ start++;
} else {
- output.append(message.substring(end, length));
+ output.append(messageWithNoDoubleQuotes, end, length);
break;
}
} else {
- output.append(message.substring(start + 1, length));
+ if (output == null) return new String(messageWithNoDoubleQuotes);
+ output.append(messageWithNoDoubleQuotes, start, length - start);
break;
}
}
+
return output.toString();
}
/**
@@ -156,6 +166,8 @@
/**
* This method initializes the MessageTemplates class variable according
* to the current Locale.
+ * @param loc Locale
+ * @return HashtableOfInt
*/
public static HashtableOfInt loadMessageTemplates(Locale loc) {
ResourceBundle bundle = null;
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
index 4dbbea8..fc5170a 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
@@ -565,6 +565,7 @@
case IProblem.JavadocUndefinedMethod:
case IProblem.JavadocNotVisibleMethod:
case IProblem.JavadocAmbiguousMethod:
+ case IProblem.JavadocAmbiguousMethodReference:
case IProblem.JavadocParameterMismatch:
case IProblem.JavadocUndefinedType:
case IProblem.JavadocNotVisibleType:
@@ -572,6 +573,9 @@
case IProblem.JavadocInternalTypeNameProvided:
case IProblem.JavadocNoMessageSendOnArrayType:
case IProblem.JavadocNoMessageSendOnBaseType:
+ case IProblem.JavadocInheritedMethodHidesEnclosingName:
+ case IProblem.JavadocInheritedFieldHidesEnclosingName:
+ case IProblem.JavadocInheritedNameHidesEnclosingTypeName:
if (this.options.docCommentSupport && this.options.reportInvalidJavadocTags) {
return this.options.getSeverity(CompilerOptions.InvalidJavadoc);
} else {
@@ -2273,6 +2277,20 @@
statement.sourceStart,
statement.sourceEnd);
}
+public void javadocAmbiguousMethodReference(FieldReference fieldRef, int modifiers) {
+ int id = IProblem.JavadocAmbiguousMethodReference;
+ if (javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {
+ String[] arguments = new String[] {new String(fieldRef.binding.readableName())};
+ handle(id, arguments, arguments, fieldRef.sourceStart, fieldRef.sourceEnd);
+ }
+}
+/*
+ * Similar implementation than invalidField(FieldReference...)
+ * Note that following problem id cannot occur for Javadoc:
+ * - NonStaticReferenceInStaticContext :
+ * - NonStaticReferenceInConstructorInvocation :
+ * - ReceiverTypeNotVisible :
+ */
public void javadocInvalidField(FieldReference fieldRef, TypeBinding searchedType, int modifiers) {
int id = IProblem.JavadocUndefinedField;
FieldBinding field = fieldRef.binding;
@@ -2286,6 +2304,9 @@
case Ambiguous :
id = IProblem.JavadocAmbiguousField;
break;
+ case InheritedNameHidesEnclosingName :
+ id = IProblem.JavadocInheritedFieldHidesEnclosingName;
+ break;
case NoError : // 0
default :
needImplementation(); // want to fail to see why we were here...
@@ -2297,6 +2318,13 @@
handle(id, arguments, arguments, fieldRef.sourceStart, fieldRef.sourceEnd);
}
}
+/*
+ * Similar implementation than invalidMethod(MessageSend...)
+ * Note that following problem id cannot occur for Javadoc:
+ * - NonStaticReferenceInStaticContext :
+ * - NonStaticReferenceInConstructorInvocation :
+ * - ReceiverTypeNotVisible :
+ */
public void javadocInvalidMethod(MessageSend messageSend, MethodBinding method, int modifiers) {
if (!javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {
return;
@@ -2312,6 +2340,9 @@
case Ambiguous :
id = IProblem.JavadocAmbiguousMethod;
break;
+ case InheritedNameHidesEnclosingName :
+ id = IProblem.JavadocInheritedMethodHidesEnclosingName;
+ break;
case NoError : // 0
default :
needImplementation(); // want to fail to see why we were here...
@@ -2403,6 +2434,9 @@
case InternalNameProvided :
id = IProblem.JavadocInternalTypeNameProvided;
break;
+ case InheritedNameHidesEnclosingName :
+ id = IProblem.JavadocInheritedNameHidesEnclosingTypeName;
+ break;
case NoError : // 0
default :
needImplementation(); // want to fail to see why we were here...
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/messages.properties b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/messages.properties
index dbd327d..a2996eb 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/messages.properties
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/messages.properties
@@ -378,7 +378,11 @@
505 = The type {0} is ambiguous
506 = The type {0} is deprecated
507 = The nested type {0} cannot be referenced using its binary name
-509 = Javadoc:
+508 = The method {1} is defined in an inherited type and an enclosing scope
+509 = The field {0} is defined in an inherited type and an enclosing scope
+510 = The type {0} is defined in an inherited type and an enclosing scope
+511 = {0} is an ambiguous method reference or is not a field
+512 = Javadoc:
### GENERICS
520 = Duplicate type parameter {0}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/util/Util.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/util/Util.java
index d8939ed..eef5cbd 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/util/Util.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/util/Util.java
@@ -77,23 +77,24 @@
// for compatibility with MessageFormat which eliminates double quotes in original message
char[] messageWithNoDoubleQuotes =
CharOperation.replace(message.toCharArray(), DOUBLE_QUOTES, SINGLE_QUOTE);
- message = new String(messageWithNoDoubleQuotes);
-
- int length = message.length();
- int start = -1;
+
+ if (bindings == null) return new String(messageWithNoDoubleQuotes);
+
+ int length = messageWithNoDoubleQuotes.length;
+ int start = 0;
int end = length;
StringBuffer output = null;
while (true) {
- if ((end = message.indexOf('{', start)) > -1) {
- if (output == null) output = new StringBuffer(80);
- output.append(message.substring(start + 1, end));
- if ((start = message.indexOf('}', end)) > -1) {
+ if ((end = CharOperation.indexOf('{', messageWithNoDoubleQuotes, start)) > -1) {
+ if (output == null) output = new StringBuffer(length+bindings.length*20);
+ output.append(messageWithNoDoubleQuotes, start, end - start);
+ if ((start = CharOperation.indexOf('}', messageWithNoDoubleQuotes, end + 1)) > -1) {
int index = -1;
+ String argId = new String(messageWithNoDoubleQuotes, end + 1, start - end - 1);
try {
- index = Integer.parseInt(message.substring(end + 1, start));
+ index = Integer.parseInt(argId);
output.append(bindings[index]);
} catch (NumberFormatException nfe) { // could be nested message ID {compiler.name}
- String argId = message.substring(end + 1, start);
boolean done = false;
if (!id.equals(argId)) {
String argMessage = null;
@@ -102,20 +103,21 @@
output.append(argMessage);
done = true;
} catch (MissingResourceException e) {
- // ignore
+ // unable to bind argument, ignore (will leave argument in)
}
}
- if (!done) output.append(message.substring(end + 1, start + 1));
+ if (!done) output.append(messageWithNoDoubleQuotes, end + 1, start - end);
} catch (ArrayIndexOutOfBoundsException e) {
output.append("{missing " + Integer.toString(index) + "}"); //$NON-NLS-2$ //$NON-NLS-1$
}
+ start++;
} else {
- output.append(message.substring(end, length));
+ output.append(messageWithNoDoubleQuotes, end, length);
break;
}
} else {
- if (output == null) return message;
- output.append(message.substring(start + 1, length));
+ if (output == null) return new String(messageWithNoDoubleQuotes);
+ output.append(messageWithNoDoubleQuotes, start, length - start);
break;
}
}
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java
index abd5dac..925b8dd 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java
@@ -56,7 +56,7 @@
* with minimal loss of original formatting. Here is an example:
* <pre>
* Document doc = new Document("import java.util.List;\nclass X {}\n");
- * ASTParser parser = ASTParser.newParser(AST.LEVEL_3_0);
+ * ASTParser parser = ASTParser.newParser(AST.JLS3);
* parser.setSource(doc.get().toCharArray());
* CompilationUnit cu = (CompilationUnit) parser.createAST(null);
* cu.recordModifications();
@@ -82,33 +82,53 @@
*/
public final class AST {
/**
- * Constant for indicating the AST 2.0 API (handles
- * JLS2). The 2.0 API is capable of handling all constructs
+ * Constant for indicating the AST API that handles JLS2.
+ * This API is capable of handling all constructs
* in the Java language as described in the Java Language
* Specification, Second Edition (JLS2).
* JLS2 is a superset of all earlier versions of the
- * Java language, and the 2.0 API can be used to manipulate
+ * Java language, and the JLS2 API can be used to manipulate
* programs written in all versions of the Java language
* up to and including J2SE 1.4.
*
* @since 3.0
*/
// TODO (jeem) deprecated Clients should use the level 3 API.
- public static final int LEVEL_2_0 = 2;
+ public static final int JLS2 = 2;
/**
- * Constant for indicating the AST 3.0 API (handles JLS3).
- * The 3.0 API is capable of handling all constructs in the
+ * Constant for indicating the AST API that handles JLS3.
+ * This API is capable of handling all constructs in the
* Java language as described in the Java Language
* Specification, Third Edition (JLS3).
* JLS3 is a superset of all earlier versions of the
- * Java language, and the 3.0 API can be used to manipulate
+ * Java language, and the JLS3 API can be used to manipulate
* programs written in all versions of the Java language
* up to and including J2SE 1.5.
+ * <p>
+ * <b>NOTE:</b>In Eclipse 3.0, there is no underlying parser support for
+ * JLS3 ASTs. This support is planned for the follow-on release of
+ * Eclipse which includes support for J2SE 1.5. Without a parser to create
+ * JLS3 ASTs, they are not much use. Use JLS2 ASTs instead.
+ * </p>
*
* @since 3.0
*/
- public static final int LEVEL_3_0 = 3;
+ public static final int JLS3 = 3;
+
+ /**
+ * @since 3.0
+ * @deprecated Renamed {@link #JLS2}.
+ * // TODO (jeem) - remove after I20040427
+ */
+ public static final int LEVEL_2_0 = JLS2;
+
+ /**
+ * @since 3.0
+ * @deprecated Renamed {@link #JLS3}.
+ * // TODO (jeem) - remove after I20040427
+ */
+ public static final int LEVEL_3_0 = JLS3;
/**
* The binding resolver for this AST. Initially a binding resolver that
@@ -186,8 +206,8 @@
* @since 3.0
*/
private AST(int level) {
- if ((level != AST.LEVEL_2_0)
- && (level != AST.LEVEL_3_0)) {
+ if ((level != AST.JLS2)
+ && (level != AST.JLS3)) {
throw new IllegalArgumentException();
}
this.apiLevel = level;
@@ -268,7 +288,7 @@
*/
// TODO (jeem) deprecated Clients should port their code to use the new 3.0 API and call {@link #newAST(int)} instead of using this constructor.
public AST(Map options) {
- this(LEVEL_2_0);
+ this(JLS2);
// override scanner if 1.4 asked for
if (JavaCore.VERSION_1_4.equals(options.get(JavaCore.COMPILER_SOURCE))) {
this.scanner = new Scanner(
@@ -294,8 +314,8 @@
* @since 3.0
*/
public static AST newAST(int level) {
- if ((level != AST.LEVEL_2_0)
- && (level != AST.LEVEL_3_0)) {
+ if ((level != AST.JLS2)
+ && (level != AST.JLS3)) {
throw new IllegalArgumentException();
}
return new AST(level);
@@ -333,7 +353,7 @@
/**
* Return the API level supported by this AST.
*
- * @return level the API level; one of the <code>LEVEL_*</code>LEVEL
+ * @return level the API level; one of the <code>JLS*</code>LEVEL
* declared on <code>AST</code>; assume this set is open-ended
* @since 3.0
*/
@@ -746,7 +766,7 @@
boolean resolveBindings) {
try {
- ASTParser c = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser c = ASTParser.newParser(AST.JLS2);
c.setSource(unit);
c.setResolveBindings(resolveBindings);
ASTNode result = c.createAST(null);
@@ -824,7 +844,7 @@
throw new IllegalArgumentException();
}
try {
- ASTParser c = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser c = ASTParser.newParser(AST.JLS2);
c.setSource(classFile);
c.setResolveBindings(resolveBindings);
ASTNode result = c.createAST(null);
@@ -908,7 +928,7 @@
if (source == null) {
throw new IllegalArgumentException();
}
- ASTParser c = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser c = ASTParser.newParser(AST.JLS2);
c.setSource(source);
c.setUnitName(unitName);
c.setProject(project);
@@ -955,7 +975,7 @@
if (source == null) {
throw new IllegalArgumentException();
}
- ASTParser c = ASTParser.newParser(AST.LEVEL_2_0);
+ ASTParser c = ASTParser.newParser(AST.JLS2);
c.setSource(source);
ASTNode result = c.createAST(null);
return (CompilationUnit) result;
@@ -1085,7 +1105,7 @@
* @since 3.0
*/
void unsupportedIn2() {
- if (this.apiLevel == AST.LEVEL_2_0) {
+ if (this.apiLevel == AST.JLS2) {
throw new UnsupportedOperationException("Operation not supported in 2.0 AST"); //$NON-NLS-1$
}
}
@@ -1098,7 +1118,7 @@
* @since 3.0
*/
void supportedOnlyIn2() {
- if (this.apiLevel != AST.LEVEL_2_0) {
+ if (this.apiLevel != AST.JLS2) {
throw new UnsupportedOperationException("Operation not supported in 2.0 AST"); //$NON-NLS-1$
}
}
@@ -1327,12 +1347,6 @@
/**
* Creates and returns a new unparented parameterized type node with the
* given type and an empty list of type arguments.
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param type the type that is parameterized
* @return a new unparented parameterized type node
@@ -1354,12 +1368,6 @@
/**
* Creates and returns a new unparented qualified type node with
* the given qualifier type and name.
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param qualifier the qualifier type node
* @param name the simple name being qualified
@@ -1383,12 +1391,6 @@
/**
* Creates and returns a new unparented wildcard type node with no
* type bound.
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return a new unparented wildcard type node
* @exception IllegalArgumentException if:
@@ -1540,12 +1542,6 @@
* The name of the constant is an unspecified, but legal, name;
* no doc comment; no modifiers or annotations; no arguments;
* and an empty class body.
- * <p>
- * Note: Support for enumerations is an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return a new unparented enum constant declaration node
* @exception UnsupportedOperationException if this operation is used in
@@ -1562,12 +1558,6 @@
* The name of the enum is an unspecified, but legal, name;
* no doc comment; no modifiers or annotations;
* no superinterfaces; and no body declarations.
- * <p>
- * Note: Support for enumerations is an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return a new unparented enum declaration node
* @exception UnsupportedOperationException if this operation is used in
@@ -1582,12 +1572,6 @@
/**
* Creates and returns a new unparented type parameter type node with an
* unspecified type variable name and an empty list of type bounds.
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return a new unparented type parameter node
* @exception UnsupportedOperationException if this operation is used in
@@ -1603,12 +1587,6 @@
* Creates and returns a new unparented annotation type declaration
* node for an unspecified, but legal, name; no modifiers; no javadoc;
* and an empty list of member declarations.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return a new unparented annotation type declaration node
* @exception UnsupportedOperationException if this operation is used in
@@ -1625,12 +1603,6 @@
* member declaration node for an unspecified, but legal,
* member name and type; no modifiers; no javadoc;
* and no default value.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return a new unparented annotation type member declaration node
* @exception UnsupportedOperationException if this operation is used in
@@ -1645,12 +1617,6 @@
/**
* Creates and returns a new unparented modifier node for the given
* modifier.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param keyword one of the modifier keyword constants
* @return a new unparented modifier node
@@ -1880,10 +1846,10 @@
public TypeDeclarationStatement
newTypeDeclarationStatement(AbstractTypeDeclaration decl) {
TypeDeclarationStatement result = new TypeDeclarationStatement(this);
- if (this.apiLevel == AST.LEVEL_2_0) {
+ if (this.apiLevel == AST.JLS2) {
result.setTypeDeclaration((TypeDeclaration) decl);
}
- if (this.apiLevel >= AST.LEVEL_3_0) {
+ if (this.apiLevel >= AST.JLS3) {
result.setDeclaration(decl);
}
return result;
@@ -2097,12 +2063,6 @@
* Creates a new unparented enhanced for statement node owned by this AST.
* By default, the paramter and expression are unspecified
* but legal subtrees, and the body is an empty block.
- * <p>
- * Note: Enhanced for statements are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return a new unparented throw statement node
* @exception UnsupportedOperationException if this operation is used in
@@ -2559,12 +2519,6 @@
* Creates and returns a new unparented normal annotation node with
* an unspecified type name and an empty list of member value
* pairs.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return a new unparented normal annotation node
* @exception UnsupportedOperationException if this operation is used in
@@ -2579,12 +2533,6 @@
/**
* Creates and returns a new unparented marker annotation node with
* an unspecified type name.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return a new unparented marker annotation node
* @exception UnsupportedOperationException if this operation is used in
@@ -2599,12 +2547,6 @@
/**
* Creates and returns a new unparented single member annotation node with
* an unspecified type name and value.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return a new unparented single member annotation node
* @exception UnsupportedOperationException if this operation is used in
@@ -2619,12 +2561,6 @@
/**
* Creates and returns a new unparented member value pair node with
* an unspecified member name and value.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return a new unparented member value pair node
* @exception UnsupportedOperationException if this operation is used in
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java
index 7aaf3a1..3caaf0c 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java
@@ -26,6 +26,8 @@
import org.eclipse.jdt.internal.compiler.ast.Argument;
import org.eclipse.jdt.internal.compiler.ast.EnumConstant;
import org.eclipse.jdt.internal.compiler.ast.JavadocArgumentExpression;
+import org.eclipse.jdt.internal.compiler.ast.JavadocFieldReference;
+import org.eclipse.jdt.internal.compiler.ast.JavadocMessageSend;
import org.eclipse.jdt.internal.compiler.ast.LocalDeclaration;
import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
import org.eclipse.jdt.internal.compiler.env.IConstants;
@@ -1393,12 +1395,10 @@
recordNodes(javadoc, (TagElement) tags.next());
}
}
-// return docComment;
bodyDeclaration.setJavadoc(docComment);
}
}
}
-// return null;
}
public LabeledStatement convert(org.eclipse.jdt.internal.compiler.ast.LabeledStatement statement) {
@@ -2579,21 +2579,43 @@
protected void recordNodes(org.eclipse.jdt.internal.compiler.ast.Javadoc javadoc, TagElement tagElement) {
Iterator fragments = tagElement.fragments().listIterator();
+ int size = tagElement.fragments().size();
+ int[] replaceIndex = new int[size];
+ int idx = 0;
while (fragments.hasNext()) {
ASTNode node = (ASTNode) fragments.next();
+ replaceIndex[idx] = 0;
if (node.getNodeType() == ASTNode.MEMBER_REF) {
MemberRef memberRef = (MemberRef) node;
Name name = memberRef.getName();
// get compiler node and record nodes
int start = name.getStartPosition();
- org.eclipse.jdt.internal.compiler.ast.JavadocFieldReference fieldRef = (org.eclipse.jdt.internal.compiler.ast.JavadocFieldReference) javadoc.getNodeStartingAt(start);
- if (fieldRef != null) {
- recordNodes(name, fieldRef);
- recordNodes(node, fieldRef);
+ org.eclipse.jdt.internal.compiler.ast.ASTNode compilerNode = javadoc.getNodeStartingAt(start);
+ if (compilerNode instanceof JavadocMessageSend) {
+ replaceIndex[idx] = 1;
+ }
+ if (compilerNode!= null) {
+ recordNodes(name, compilerNode);
+ recordNodes(node, compilerNode);
}
// Replace qualifier to have all nodes recorded
if (memberRef.getQualifier() != null) {
- recordName(memberRef.getQualifier(), fieldRef.receiver);
+ org.eclipse.jdt.internal.compiler.ast.TypeReference typeRef = null;
+ if (compilerNode instanceof JavadocFieldReference) {
+ org.eclipse.jdt.internal.compiler.ast.Expression expression = ((JavadocFieldReference)compilerNode).receiver;
+ if (expression instanceof org.eclipse.jdt.internal.compiler.ast.TypeReference) {
+ typeRef = (org.eclipse.jdt.internal.compiler.ast.TypeReference) expression;
+ }
+ }
+ else if (compilerNode instanceof JavadocMessageSend) {
+ org.eclipse.jdt.internal.compiler.ast.Expression expression = ((JavadocMessageSend)compilerNode).receiver;
+ if (expression instanceof org.eclipse.jdt.internal.compiler.ast.TypeReference) {
+ typeRef = (org.eclipse.jdt.internal.compiler.ast.TypeReference) expression;
+ }
+ }
+ if (typeRef != null) {
+ recordName(memberRef.getQualifier(), typeRef);
+ }
}
} else if (node.getNodeType() == ASTNode.METHOD_REF) {
MethodRef methodRef = (MethodRef) node;
@@ -2654,6 +2676,18 @@
recordNodes(javadoc, (TagElement) node);
}
}
+ for (int i=0; i<size; i++) {
+ if (replaceIndex[i] == 1) {
+ MemberRef memberRef = (MemberRef) tagElement.fragments().remove(i);
+ MethodRef methodRef = this.ast.newMethodRef();
+ methodRef.setName((SimpleName)memberRef.getName().clone(this.ast));
+ if (memberRef.getQualifier() != null) {
+ methodRef.setQualifier((Name)memberRef.getQualifier().clone(this.ast));
+ }
+ methodRef.setSourceRange(memberRef.getStartPosition(), memberRef.getLength());
+ tagElement.fragments().add(i, methodRef);
+ }
+ }
}
protected void recordPendingNameScopeResolution(Name name) {
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTMatcher.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTMatcher.java
index d879fdc..e8e8d8d 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTMatcher.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTMatcher.java
@@ -166,12 +166,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
@@ -199,12 +193,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
@@ -568,12 +556,12 @@
}
ClassInstanceCreation o = (ClassInstanceCreation) other;
int level = node.getAST().apiLevel;
- if (level == AST.LEVEL_2_0) {
+ if (level == AST.JLS2) {
if (!safeSubtreeMatch(node.getName(), o.getName())) {
return false;
}
}
- if (level >= AST.LEVEL_3_0) {
+ if (level >= AST.JLS3) {
if (!safeSubtreeListMatch(node.typeArguments(), o.typeArguments())) {
return false;
}
@@ -658,7 +646,7 @@
return false;
}
ConstructorInvocation o = (ConstructorInvocation) other;
- if (node.getAST().apiLevel >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel >= AST.JLS3) {
if (!safeSubtreeListMatch(node.typeArguments(), o.typeArguments())) {
return false;
}
@@ -740,12 +728,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Enhanced for statements are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
@@ -773,10 +755,10 @@
* child subtrees. Subclasses may override this method as needed.
* </p>
* <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @param node the node
@@ -808,12 +790,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
@@ -903,12 +879,12 @@
}
FieldDeclaration o = (FieldDeclaration) other;
int level = node.getAST().apiLevel;
- if (level == AST.LEVEL_2_0) {
+ if (level == AST.JLS2) {
if (node.getModifiers() != o.getModifiers()) {
return false;
}
}
- if (level >= AST.LEVEL_3_0) {
+ if (level >= AST.JLS3) {
if (!safeSubtreeListMatch(node.modifiers(), o.modifiers())) {
return false;
}
@@ -989,7 +965,7 @@
return false;
}
ImportDeclaration o = (ImportDeclaration) other;
- if (node.getAST().apiLevel >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel >= AST.JLS3) {
if (node.isStatic() != o.isStatic()) {
return false;
}
@@ -1077,12 +1053,12 @@
}
Initializer o = (Initializer) other;
int level = node.getAST().apiLevel;
- if (level == AST.LEVEL_2_0) {
+ if (level == AST.JLS2) {
if (node.getModifiers() != o.getModifiers()) {
return false;
}
}
- if (level >= AST.LEVEL_3_0) {
+ if (level >= AST.JLS3) {
if (!safeSubtreeListMatch(node.modifiers(), o.modifiers())) {
return false;
}
@@ -1137,7 +1113,7 @@
* @deprecated mark deprecated to hide deprecated usage
*/
private boolean compareDeprecatedComment(Javadoc first, Javadoc second) {
- if (first.getAST().apiLevel == AST.LEVEL_2_0) {
+ if (first.getAST().apiLevel == AST.JLS2) {
return safeEquals(first.getComment(), second.getComment());
} else {
return true;
@@ -1197,12 +1173,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
@@ -1251,12 +1221,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
@@ -1353,7 +1317,7 @@
}
MethodDeclaration o = (MethodDeclaration) other;
int level = node.getAST().apiLevel;
- if (level == AST.LEVEL_2_0) {
+ if (level == AST.JLS2) {
if (node.getModifiers() != o.getModifiers()) {
return false;
}
@@ -1361,7 +1325,7 @@
return false;
}
}
- if (level >= AST.LEVEL_3_0) {
+ if (level >= AST.JLS3) {
if (!safeSubtreeListMatch(node.modifiers(), o.modifiers())) {
return false;
}
@@ -1402,7 +1366,7 @@
return false;
}
MethodInvocation o = (MethodInvocation) other;
- if (node.getAST().apiLevel >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel >= AST.JLS3) {
if (!safeSubtreeListMatch(node.typeArguments(), o.typeArguments())) {
return false;
}
@@ -1420,12 +1384,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
@@ -1449,12 +1407,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
@@ -1534,7 +1486,7 @@
return false;
}
PackageDeclaration o = (PackageDeclaration) other;
- if (node.getAST().apiLevel >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel >= AST.JLS3) {
if (!safeSubtreeMatch(node.getJavadoc(), o.getJavadoc())) {
return false;
}
@@ -1552,12 +1504,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
@@ -1698,12 +1644,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
@@ -1795,12 +1735,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
@@ -1842,12 +1776,12 @@
}
SingleVariableDeclaration o = (SingleVariableDeclaration) other;
int level = node.getAST().apiLevel;
- if (level == AST.LEVEL_2_0) {
+ if (level == AST.JLS2) {
if (node.getModifiers() != o.getModifiers()) {
return false;
}
}
- if (level >= AST.LEVEL_3_0) {
+ if (level >= AST.JLS3) {
if (!safeSubtreeListMatch(node.modifiers(), o.modifiers())) {
return false;
}
@@ -1903,7 +1837,7 @@
return false;
}
SuperConstructorInvocation o = (SuperConstructorInvocation) other;
- if (node.getAST().apiLevel >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel >= AST.JLS3) {
if (!safeSubtreeListMatch(node.typeArguments(), o.typeArguments())) {
return false;
}
@@ -1956,7 +1890,7 @@
return false;
}
SuperMethodInvocation o = (SuperMethodInvocation) other;
- if (node.getAST().apiLevel >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel >= AST.JLS3) {
if (!safeSubtreeListMatch(node.typeArguments(), o.typeArguments())) {
return false;
}
@@ -2174,7 +2108,7 @@
}
TypeDeclaration o = (TypeDeclaration) other;
int level = node.getAST().apiLevel;
- if (level == AST.LEVEL_2_0) {
+ if (level == AST.JLS2) {
if (node.getModifiers() != o.getModifiers()) {
return false;
}
@@ -2185,7 +2119,7 @@
return false;
}
}
- if (level >= AST.LEVEL_3_0) {
+ if (level >= AST.JLS3) {
if (!safeSubtreeListMatch(node.modifiers(), o.modifiers())) {
return false;
}
@@ -2257,12 +2191,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
@@ -2300,12 +2228,12 @@
}
VariableDeclarationExpression o = (VariableDeclarationExpression) other;
int level = node.getAST().apiLevel;
- if (level == AST.LEVEL_2_0) {
+ if (level == AST.JLS2) {
if (node.getModifiers() != o.getModifiers()) {
return false;
}
}
- if (level >= AST.LEVEL_3_0) {
+ if (level >= AST.JLS3) {
if (!safeSubtreeListMatch(node.modifiers(), o.modifiers())) {
return false;
}
@@ -2362,12 +2290,12 @@
}
VariableDeclarationStatement o = (VariableDeclarationStatement) other;
int level = node.getAST().apiLevel;
- if (level == AST.LEVEL_2_0) {
+ if (level == AST.JLS2) {
if (node.getModifiers() != o.getModifiers()) {
return false;
}
}
- if (level >= AST.LEVEL_3_0) {
+ if (level >= AST.JLS3) {
if (!safeSubtreeListMatch(node.modifiers(), o.modifiers())) {
return false;
}
@@ -2407,12 +2335,6 @@
* other object is a node of the same type with structurally isomorphic
* child subtrees. Subclasses may override this method as needed.
* </p>
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param node the node
* @param other the other object, or <code>null</code>
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTNode.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTNode.java
index ad919f5..6c31a08 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTNode.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTNode.java
@@ -646,12 +646,6 @@
/**
* Node type constant indicating a node of type
* <code>EnhancedForStatement</code>.
- * <p>
- * Note: Enhanced for statements are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see EnhancedForStatement
* @since 3.0
*/
@@ -660,12 +654,6 @@
/**
* Node type constant indicating a node of type
* <code>EnumDeclaration</code>.
- * <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see EnumDeclaration
* @since 3.0
*/
@@ -674,12 +662,6 @@
/**
* Node type constant indicating a node of type
* <code>EnumConstantDeclaration</code>.
- * <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see EnumConstantDeclaration
* @since 3.0
*/
@@ -688,12 +670,6 @@
/**
* Node type constant indicating a node of type
* <code>TypeParameter</code>.
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see TypeParameter
* @since 3.0
*/
@@ -702,12 +678,6 @@
/**
* Node type constant indicating a node of type
* <code>ParameterizedType</code>.
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see ParameterizedType
* @since 3.0
*/
@@ -716,12 +686,6 @@
/**
* Node type constant indicating a node of type
* <code>QualifiedType</code>.
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see QualifiedType
* @since 3.0
*/
@@ -730,12 +694,6 @@
/**
* Node type constant indicating a node of type
* <code>WildcardType</code>.
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see WildcardType
* @since 3.0
*/
@@ -744,12 +702,6 @@
/**
* Node type constant indicating a node of type
* <code>NormalAnnotation</code>.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see NormalAnnotation
* @since 3.0
*/
@@ -758,12 +710,6 @@
/**
* Node type constant indicating a node of type
* <code>MarkerAnnotation</code>.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see MarkerAnnotation
* @since 3.0
*/
@@ -772,12 +718,6 @@
/**
* Node type constant indicating a node of type
* <code>SingleMemberAnnotation</code>.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see SingleMemberAnnotation
* @since 3.0
*/
@@ -786,12 +726,6 @@
/**
* Node type constant indicating a node of type
* <code>MemberValuePair</code>.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see MemberValuePair
* @since 3.0
*/
@@ -800,12 +734,6 @@
/**
* Node type constant indicating a node of type
* <code>AnnotationTypeDeclaration</code>.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see AnnotationTypeDeclaration
* @since 3.0
*/
@@ -814,12 +742,6 @@
/**
* Node type constant indicating a node of type
* <code>AnnotationTypeMemberDeclaration</code>.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see AnnotationTypeMemberDeclaration
* @since 3.0
*/
@@ -828,12 +750,6 @@
/**
* Node type constant indicating a node of type
* <code>Modifier</code>.
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @see Modifier
* @since 3.0
*/
@@ -1778,7 +1694,7 @@
* clutter up the API doc.
* </p>
*
- * @param apiLevel the API level; one of the <code>AST.LEVEL_*</code> constants
+ * @param apiLevel the API level; one of the <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
@@ -1842,7 +1758,7 @@
* @since 3.0
*/
final void unsupportedIn2() {
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
throw new UnsupportedOperationException("Operation not supported in 2.0 AST"); //$NON-NLS-1$
}
}
@@ -1855,7 +1771,7 @@
* @since 3.0
*/
final void supportedOnlyIn2() {
- if (this.ast.apiLevel != AST.LEVEL_2_0) {
+ if (this.ast.apiLevel != AST.JLS2) {
throw new UnsupportedOperationException("Operation only supported in 2.0 AST"); //$NON-NLS-1$
}
}
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java
index a21b266..9ca41af 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java
@@ -37,7 +37,7 @@
* Example: Create basic AST from source string
* <pre>
* char[] source = ...;
- * ASTParser parser = ASTParser.newParser(AST.LEVEL_3_0); // handles JLS3 (J2SE 1.5)
+ * ASTParser parser = ASTParser.newParser(AST.JLS2); // handles JLS2 (J2SE 1.4)
* parser.setSource(source);
* CompilationUnit result = (CompilationUnit) parser.createAST(null);
* </pre>
@@ -98,8 +98,13 @@
/**
* Creates a new object for creating a Java abstract syntax tree
- * (AST) following the specified set of API rules.
-
+ * (AST) following the specified set of API rules.
+ * <p>
+ * <b>NOTE:</b>In Eclipse 3.0, there is no parser support for
+ * AST.JLS3. This support is planned for the follow-on release of
+ * Eclipse which includes support for J2SE 1.5.
+ * </p>
+ *
* @param level the API level; one of the LEVEL constants
* declared on <code>AST</code>
*/
@@ -194,8 +199,8 @@
* declared on <code>AST</code>
*/
ASTParser(int level) {
- if ((level != AST.LEVEL_2_0)
- && (level != AST.LEVEL_3_0)) {
+ if ((level != AST.JLS2)
+ && (level != AST.JLS3)) {
throw new IllegalArgumentException();
}
this.apiLevel = level;
@@ -690,7 +695,7 @@
AST ast = AST.newAST(this.apiLevel);
ast.setDefaultNodeFlag(ASTNode.ORIGINAL);
CompilationUnit compilationUnit = null;
- if (AST.LEVEL_2_0 == this.apiLevel) {
+ if (AST.JLS2 == this.apiLevel) {
ASTConverter converter = new ASTConverter(this.compilerOptions, needToResolveBindings, monitor);
if (needToResolveBindings) {
resolver = new DefaultBindingResolver(compilationUnitDeclaration.scope);
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTVisitor.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTVisitor.java
index bb1dd3f..47c3f3d 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTVisitor.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTVisitor.java
@@ -156,164 +156,571 @@
// default implementation: do nothing
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(AnnotationTypeDeclaration node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(AnnotationTypeMemberDeclaration node) {
return true;
}
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(AnonymousClassDeclaration node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ArrayAccess node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ArrayCreation node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ArrayInitializer node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ArrayType node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(AssertStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(Assignment node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(Block node) {
return true;
}
+
/**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(BlockComment node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(BooleanLiteral node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(BreakStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(CastExpression node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(CatchClause node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(CharacterLiteral node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ClassInstanceCreation node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(CompilationUnit node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ConditionalExpression node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ConstructorInvocation node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ContinueStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(DoStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(EmptyStatement node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Enhanced for statements are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(EnhancedForStatement node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(EnumConstantDeclaration node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(EnumDeclaration node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ExpressionStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(FieldAccess node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(FieldDeclaration node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ForStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(IfStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ImportDeclaration node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(InfixExpression node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(InstanceofExpression node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(Initializer node) {
return true;
}
@@ -329,8 +736,9 @@
* </p>
*
* @param node the node to visit
- * @return <code>true</code> to visit the children of the given
- * node, and <code>false</code> to skip the children
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @see #ASTVisitor()
* @see #ASTVisitor(boolean)
*/
@@ -339,484 +747,1297 @@
return this.visitDocTags;
}
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(LabeledStatement node) {
return true;
}
+
/**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(LineComment node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(MarkerAnnotation node) {
return true;
}
+
/**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(MemberRef node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(MemberValuePair node) {
return true;
}
+
/**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(MethodRef node) {
return true;
}
+
/**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(MethodRefParameter node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(MethodDeclaration node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(MethodInvocation node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(Modifier node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(NormalAnnotation node) {
return true;
}
-
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(NullLiteral node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(NumberLiteral node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(PackageDeclaration node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(ParameterizedType node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ParenthesizedExpression node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(PostfixExpression node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(PrefixExpression node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(PrimitiveType node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(QualifiedName node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(QualifiedType node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ReturnStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(SimpleName node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(SimpleType node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(SingleMemberAnnotation node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(SingleVariableDeclaration node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(StringLiteral node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(SuperConstructorInvocation node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(SuperFieldAccess node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(SuperMethodInvocation node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(SwitchCase node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(SwitchStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(SynchronizedStatement node) {
return true;
}
+
/**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(TagElement node) {
return true;
}
+
/**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(TextElement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ThisExpression node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(ThrowStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(TryStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(TypeDeclaration node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(TypeDeclarationStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(TypeLiteral node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(TypeParameter node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(VariableDeclarationExpression node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(VariableDeclarationStatement node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(VariableDeclarationFragment node) {
return true;
}
+
+ /**
+ * Visits the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
+ */
public boolean visit(WhileStatement node) {
return true;
}
- /** Visits the given node.
+
+ /**
+ * Visits the given type-specific AST node.
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing and return true.
+ * Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
+ * @return <code>true</code> if the children of this node should be
+ * visited, and <code>false</code> if the children of this node should
+ * be skipped
* @since 3.0
*/
public boolean visit(WildcardType node) {
return true;
}
-
- /** End of visit of the given node.
+
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(AnnotationTypeDeclaration node) {
// default implementation: do nothing
}
- /** End of visit of the given node.
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(AnnotationTypeMemberDeclaration node) {
// default implementation: do nothing
}
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(AnonymousClassDeclaration node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ArrayAccess node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ArrayCreation node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ArrayInitializer node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ArrayType node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(AssertStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(Assignment node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(Block node) {
// default implementation: do nothing
}
/**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(BlockComment node) {
// default implementation: do nothing
}
-
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(BooleanLiteral node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(BreakStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(CastExpression node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(CatchClause node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(CharacterLiteral node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ClassInstanceCreation node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(CompilationUnit node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ConditionalExpression node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ConstructorInvocation node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ContinueStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(DoStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(EmptyStatement node) {
// default implementation: do nothing
}
- /** End of visit of the given node.
+
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Enhanced for statements are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(EnhancedForStatement node) {
// default implementation: do nothing
}
- /** End of visit of the given node.
+
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(EnumConstantDeclaration node) {
// default implementation: do nothing
}
- /** End of visit of the given node.
+
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(EnumDeclaration node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ExpressionStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(FieldAccess node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(FieldDeclaration node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ForStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(IfStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ImportDeclaration node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(InfixExpression node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(InstanceofExpression node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(Initializer node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(Javadoc node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(LabeledStatement node) {
// default implementation: do nothing
}
/**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(LineComment node) {
// default implementation: do nothing
}
- /** End of visit of the given node.
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(MarkerAnnotation node) {
// default implementation: do nothing
}
-
+
/**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(MemberRef node) {
// default implementation: do nothing
}
- /** End of visit of the given node.
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(MemberValuePair node) {
// default implementation: do nothing
}
-
+
/**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(MethodRef node) {
@@ -824,147 +2045,342 @@
}
/**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(MethodRefParameter node) {
// default implementation: do nothing
}
-
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(MethodDeclaration node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(MethodInvocation node) {
// default implementation: do nothing
}
- /** End of visit of the given node.
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(Modifier node) {
// default implementation: do nothing
}
-
- /** End of visit of the given node.
+
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(NormalAnnotation node) {
// default implementation: do nothing
}
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(NullLiteral node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(NumberLiteral node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(PackageDeclaration node) {
// default implementation: do nothing
}
- /** Ends visit of the given node.
+
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(ParameterizedType node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ParenthesizedExpression node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(PostfixExpression node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(PrefixExpression node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(PrimitiveType node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(QualifiedName node) {
// default implementation: do nothing
}
- /** Ends visit of the given node.
+
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(QualifiedType node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ReturnStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(SimpleName node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(SimpleType node) {
// default implementation: do nothing
}
- /** End of visit of the given node.
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(SingleMemberAnnotation node) {
// default implementation: do nothing
}
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(SingleVariableDeclaration node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(StringLiteral node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(SuperConstructorInvocation node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(SuperFieldAccess node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(SuperMethodInvocation node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(SwitchCase node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(SwitchStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(SynchronizedStatement node) {
// default implementation: do nothing
}
/**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(TagElement node) {
@@ -972,63 +2388,158 @@
}
/**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(TextElement node) {
// default implementation: do nothing
}
-
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ThisExpression node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(ThrowStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(TryStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(TypeDeclaration node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(TypeDeclarationStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(TypeLiteral node) {
// default implementation: do nothing
}
- /** Ends visit of the given node.
+
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(TypeParameter node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(VariableDeclarationExpression node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(VariableDeclarationStatement node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(VariableDeclarationFragment node) {
// default implementation: do nothing
}
+
+ /**
+ * End of visit the given type-specific AST node.
+ * <p>
+ * The default implementation does nothing. Subclasses may reimplement.
+ * </p>
+ *
+ * @param node the node to visit
+ */
public void endVisit(WhileStatement node) {
// default implementation: do nothing
}
- /** End of visit of the given node.
+
+ /**
+ * End of visit the given type-specific AST node.
* <p>
- * Note: Enhanced for statements are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * The default implementation does nothing. Subclasses may reimplement.
* </p>
*
+ * @param node the node to visit
* @since 3.0
*/
public void endVisit(WildcardType node) {
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AbstractTypeDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AbstractTypeDeclaration.java
index 9768100..37fe9be 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AbstractTypeDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AbstractTypeDeclaration.java
@@ -21,18 +21,6 @@
* EnumDeclaration
* AnnotationTypeDeclaration
* </pre>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
- * <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @since 3.0
*/
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Annotation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Annotation.java
index 35e37c8..631d01e 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Annotation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Annotation.java
@@ -21,10 +21,10 @@
* </pre>
* </p>
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
* @since 3.0
*/
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AnnotationTypeDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AnnotationTypeDeclaration.java
index c76694e..3311793 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AnnotationTypeDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AnnotationTypeDeclaration.java
@@ -39,10 +39,10 @@
* token following the body declarations.
* </p>
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @since 3.0
@@ -94,7 +94,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AnnotationTypeMemberDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AnnotationTypeMemberDeclaration.java
index 6851cc9..796362c 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AnnotationTypeMemberDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AnnotationTypeMemberDeclaration.java
@@ -33,10 +33,10 @@
* ";" token.
* </p>
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @since 3.0
@@ -100,7 +100,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
*/
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AnonymousClassDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AnonymousClassDeclaration.java
index 3827352..f80a954 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AnonymousClassDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AnonymousClassDeclaration.java
@@ -51,7 +51,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayAccess.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayAccess.java
index 93a2275..23311bc 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayAccess.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayAccess.java
@@ -58,7 +58,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayCreation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayCreation.java
index 3a2fad1..4f0f049 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayCreation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayCreation.java
@@ -87,7 +87,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayInitializer.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayInitializer.java
index 834c6ec..ad11222 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayInitializer.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayInitializer.java
@@ -50,7 +50,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayType.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayType.java
index f89b0e0..371b24b 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayType.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayType.java
@@ -52,7 +52,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AssertStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AssertStatement.java
index 90e3ccb..9afe463 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AssertStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AssertStatement.java
@@ -58,7 +58,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Assignment.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Assignment.java
index 7b994ca..5db1ff9 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Assignment.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Assignment.java
@@ -186,7 +186,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BindingResolver.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BindingResolver.java
index 1523717..4a21d87 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BindingResolver.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BindingResolver.java
@@ -92,7 +92,7 @@
* Resolves the given well known type by name and returns the type binding
* for it.
* <p>
- * The implementation of <code>ASTNode.resolveWellKnownType</code>
+ * The implementation of <code>AST.resolveWellKnownType</code>
* forwards to this method.
* </p>
* <p>
@@ -145,12 +145,6 @@
* The default implementation of this method returns <code>null</code>.
* Subclasses may reimplement.
* </p>
- * <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param type the enum declaration of interest
* @return the binding for the given enum declaration, or <code>null</code>
@@ -196,12 +190,6 @@
* The default implementation of this method returns <code>null</code>.
* Subclasses may reimplement.
* </p>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param type the annotation type declaration of interest
* @return the binding for the given annotation type declaration, or <code>null</code>
@@ -303,12 +291,6 @@
* The default implementation of this method returns <code>null</code>.
* Subclasses may reimplement.
* </p>
- * <p>
- * Note: Enhanced for statements are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param statement the enhanced for statement of interest
* @return the binding for the loop variable for the given enhanced for
@@ -320,27 +302,6 @@
}
/**
- * Resolves the given field declaration and returns the binding for it.
- * <p>
- * The implementation of <code>FieldDeclaration.resolveBinding</code>
- * forwards to this method. How the field declaration resolves is often
- * a function of the context in which the variable declaration node is
- * embedded as well as the variable declaration subtree itself.
- * </p>
- * <p>
- * The default implementation of this method returns <code>null</code>.
- * Subclasses may reimplement.
- * </p>
- *
- * @param variable the field declaration of interest
- * @return the binding for the given field declaration, or
- * <code>null</code> if no binding is available
- */
- IVariableBinding resolveVariable(FieldDeclaration variable) {
- return null;
- }
-
- /**
* Resolves the given enum constant declaration and returns the binding for
* the field.
* <p>
@@ -351,12 +312,6 @@
* The default implementation of this method returns <code>null</code>.
* Subclasses may reimplement.
* </p>
- * <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param enumConstant the enum constant declaration of interest
* @return the field binding for the given enum constant declaration, or
@@ -380,12 +335,6 @@
* The default implementation of this method returns <code>null</code>.
* Subclasses may reimplement.
* </p>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @param member the annotation type member declaration of interest
* @return the binding for the given annotation type member declaration, or <code>null</code>
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Block.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Block.java
index f3ea6ac..cfe193e 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Block.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Block.java
@@ -50,7 +50,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BlockComment.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BlockComment.java
index 4cb08b2..80b1ed3 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BlockComment.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BlockComment.java
@@ -50,7 +50,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BodyDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BodyDeclaration.java
index 6aa938a..dda60ea 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BodyDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BodyDeclaration.java
@@ -143,7 +143,7 @@
*/
BodyDeclaration(AST ast) {
super(ast);
- if (ast.apiLevel >= AST.LEVEL_3_0) {
+ if (ast.apiLevel >= AST.JLS3) {
this.modifiers = new ASTNode.NodeList(internalModifiers2Property());
}
}
@@ -224,12 +224,6 @@
/**
* Returns the live ordered list of modifiers and annotations
* of this declaration (added in 3.0 API).
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return the live list of modifiers and annotations
* (element type: <code>IExtendedModifier</code>)
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BooleanLiteral.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BooleanLiteral.java
index 7198068..39415a5 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BooleanLiteral.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BooleanLiteral.java
@@ -51,7 +51,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BreakStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BreakStatement.java
index 34932be..fff00bb 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BreakStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BreakStatement.java
@@ -50,7 +50,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CastExpression.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CastExpression.java
index 6503e8f..5bbb22f 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CastExpression.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CastExpression.java
@@ -58,7 +58,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CatchClause.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CatchClause.java
index f87e071..79c3ce5 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CatchClause.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CatchClause.java
@@ -58,7 +58,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CharacterLiteral.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CharacterLiteral.java
index 9dca6e7..bb695f1 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CharacterLiteral.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CharacterLiteral.java
@@ -49,7 +49,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ClassInstanceCreation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ClassInstanceCreation.java
index f19f00e..c9baa26 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ClassInstanceCreation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ClassInstanceCreation.java
@@ -55,12 +55,6 @@
* (Note also that the first form became possible as of 3.0; only the second
* form existed in 2.0 and 2.1.)
* </p>
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @since 2.0
*/
@@ -147,14 +141,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -214,7 +208,7 @@
*/
ClassInstanceCreation (AST ast) {
super(ast);
- if (ast.apiLevel >= AST.LEVEL_3_0) {
+ if (ast.apiLevel >= AST.JLS3) {
this.typeArguments = new ASTNode.NodeList(TYPE_ARGUMENTS_PROPERTY);
}
}
@@ -297,10 +291,10 @@
result.setSourceRange(this.getStartPosition(), this.getLength());
result.setExpression(
(Expression) ASTNode.copySubtree(target, getExpression()));
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
result.setName((Name) getName().clone(target));
}
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.typeArguments().addAll(ASTNode.copySubtrees(target, typeArguments()));
result.setType((Type) getType().clone(target));
}
@@ -327,10 +321,10 @@
if (visitChildren) {
// visit children in normal left to right reading order
acceptChild(visitor, getExpression());
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
acceptChild(visitor, getName());
}
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
acceptChildren(visitor, this.typeArguments);
acceptChild(visitor, getType());
}
@@ -375,10 +369,10 @@
* Returns the live ordered list of type arguments of this class
* instance creation (added in 3.0 API).
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @return the live list of type arguments
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CompilationUnit.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CompilationUnit.java
index 29082c9..1792e7a 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CompilationUnit.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CompilationUnit.java
@@ -93,7 +93,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ConditionalExpression.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ConditionalExpression.java
index d716697..c954a88 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ConditionalExpression.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ConditionalExpression.java
@@ -66,7 +66,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ConstructorInvocation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ConstructorInvocation.java
index d932887..ad34cdf 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ConstructorInvocation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ConstructorInvocation.java
@@ -77,14 +77,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -114,7 +114,7 @@
*/
ConstructorInvocation(AST ast) {
super(ast);
- if (ast.apiLevel >= AST.LEVEL_3_0) {
+ if (ast.apiLevel >= AST.JLS3) {
this.typeArguments = new ASTNode.NodeList(TYPE_ARGUMENTS_PROPERTY);
}
}
@@ -154,7 +154,7 @@
ConstructorInvocation result = new ConstructorInvocation(target);
result.setSourceRange(this.getStartPosition(), this.getLength());
result.copyLeadingComment(this);
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.typeArguments().addAll(ASTNode.copySubtrees(target, typeArguments()));
}
result.arguments().addAll(ASTNode.copySubtrees(target, arguments()));
@@ -175,7 +175,7 @@
void accept0(ASTVisitor visitor) {
boolean visitChildren = visitor.visit(this);
if (visitChildren) {
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
acceptChildren(visitor, this.typeArguments);
}
acceptChildren(visitor, this.arguments);
@@ -187,10 +187,10 @@
* Returns the live ordered list of type arguments of this constructor
* invocation (added in 3.0 API).
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @return the live list of type arguments
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ContinueStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ContinueStatement.java
index 83bee1b..2a9ce72 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ContinueStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ContinueStatement.java
@@ -50,7 +50,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java
index 7af873e..29fd676 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DefaultBindingResolver.java
@@ -547,26 +547,6 @@
/*
* Method declared on BindingResolver.
*/
- synchronized IVariableBinding resolveVariable(FieldDeclaration variable) {
- final Object node = this.newAstToOldAst.get(variable);
- if (node instanceof org.eclipse.jdt.internal.compiler.ast.FieldDeclaration) {
- org.eclipse.jdt.internal.compiler.ast.FieldDeclaration fieldDeclaration = (org.eclipse.jdt.internal.compiler.ast.FieldDeclaration) node;
- IVariableBinding variableBinding = this.getVariableBinding(fieldDeclaration.binding);
- if (variableBinding == null) {
- return null;
- }
- this.bindingsToAstNodes.put(variableBinding, variable);
- String key = variableBinding.getKey();
- if (key != null) {
- this.bindingKeysToAstNodes.put(key, variable);
- }
- return variableBinding;
- }
- return null;
- }
- /*
- * Method declared on BindingResolver.
- */
synchronized ITypeBinding resolveExpressionType(Expression expression) {
if (expression instanceof ClassInstanceCreation) {
org.eclipse.jdt.internal.compiler.ast.ASTNode astNode = (org.eclipse.jdt.internal.compiler.ast.ASTNode) this.newAstToOldAst.get(expression);
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DoStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DoStatement.java
index 4ffe90b..78ab9d7 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DoStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/DoStatement.java
@@ -58,7 +58,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EmptyStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EmptyStatement.java
index 92d634b..7a3d367 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EmptyStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EmptyStatement.java
@@ -42,7 +42,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EnhancedForStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EnhancedForStatement.java
index 0b3fcef..7208937 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EnhancedForStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EnhancedForStatement.java
@@ -24,10 +24,10 @@
* The FormalParameter is represented by a <code>SingleVariableDeclaration</code>
* (without an initializer).
* <p>
- * Note: Enhanced for statements are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
* @since 3.0
*/
@@ -74,7 +74,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EnumConstantDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EnumConstantDeclaration.java
index a216096..7173cdc 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EnumConstantDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EnumConstantDeclaration.java
@@ -36,10 +36,10 @@
* the last character of the identifier.
* </p>
* <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @since 3.0
@@ -98,7 +98,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EnumDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EnumDeclaration.java
index ec65441..6009990 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EnumDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/EnumDeclaration.java
@@ -36,10 +36,10 @@
* character of the "}" token following the body declarations.
* </p>
* <p>
- * Note: Enum declarations are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @since 3.0
@@ -97,7 +97,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ExpressionStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ExpressionStatement.java
index 7cecced..da42abf 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ExpressionStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ExpressionStatement.java
@@ -53,7 +53,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldAccess.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldAccess.java
index c82cdfb..5b49352 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldAccess.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldAccess.java
@@ -88,7 +88,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldDeclaration.java
index c5a5855..8ea3836 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldDeclaration.java
@@ -110,14 +110,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -250,10 +250,10 @@
result.setSourceRange(this.getStartPosition(), this.getLength());
result.setJavadoc(
(Javadoc) ASTNode.copySubtree(target, getJavadoc()));
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
result.setModifiers(getModifiers());
}
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.modifiers().addAll(ASTNode.copySubtrees(target, modifiers()));
}
result.setType((Type) getType().clone(target));
@@ -278,7 +278,7 @@
if (visitChildren) {
// visit children in normal left to right reading order
acceptChild(visitor, getJavadoc());
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
acceptChildren(visitor, this.modifiers);
}
acceptChild(visitor, getType());
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ForStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ForStatement.java
index 6d95d01..50f7eda 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ForStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ForStatement.java
@@ -83,7 +83,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IExtendedModifier.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IExtendedModifier.java
index fc6e714..594a0d8 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IExtendedModifier.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IExtendedModifier.java
@@ -18,12 +18,6 @@
* Modifier
* Annotation
* </pre>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @since 3.0
*/
public interface IExtendedModifier {
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IfStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IfStatement.java
index 9012633..91c863b 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IfStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IfStatement.java
@@ -65,7 +65,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ImportDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ImportDeclaration.java
index aaf9155..27a0413 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ImportDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ImportDeclaration.java
@@ -26,13 +26,6 @@
* ImportDeclaration:
* <b>import</b> [ <b>static</b> ] Name [ <b>.</b> <b>*</b> ] <b>;</b>
* </pre>
- *
- * <p>
- * Note: Static imports are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @since 2.0
*/
public class ImportDeclaration extends ASTNode {
@@ -92,14 +85,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -201,7 +194,7 @@
ImportDeclaration result = new ImportDeclaration(target);
result.setSourceRange(this.getStartPosition(), this.getLength());
result.setOnDemand(isOnDemand());
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.setStatic(isStatic());
}
result.setName((Name) getName().clone(target));
@@ -308,10 +301,10 @@
/**
* Returns whether this import declaration is a static import (added in 3.0 API).
* <p>
- * Note: Static imports are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @return <code>true</code> if this is a static import,
@@ -328,10 +321,10 @@
/**
* Sets whether this import declaration is a static import (added in 3.0 API).
* <p>
- * Note: Static imports are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @param isStatic <code>true</code> if this is a static import,
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/InfixExpression.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/InfixExpression.java
index 6a4bfbd..06de8b1 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/InfixExpression.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/InfixExpression.java
@@ -220,7 +220,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Initializer.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Initializer.java
index 5d9f5d0..6b24a7f 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Initializer.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Initializer.java
@@ -88,14 +88,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -214,10 +214,10 @@
ASTNode clone0(AST target) {
Initializer result = new Initializer(target);
result.setSourceRange(this.getStartPosition(), this.getLength());
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
result.setModifiers(getModifiers());
}
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.modifiers().addAll(ASTNode.copySubtrees(target, modifiers()));
}
result.setJavadoc(
@@ -241,7 +241,7 @@
boolean visitChildren = visitor.visit(this);
if (visitChildren) {
acceptChild(visitor, getJavadoc());
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
acceptChildren(visitor, this.modifiers);
}
acceptChild(visitor, getBody());
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/InstanceofExpression.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/InstanceofExpression.java
index bdedacd..24dfff9 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/InstanceofExpression.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/InstanceofExpression.java
@@ -57,7 +57,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Javadoc.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Javadoc.java
index ccb935d..e5e3f6d 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Javadoc.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Javadoc.java
@@ -76,13 +76,13 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -175,7 +175,7 @@
ASTNode clone0(AST target) {
Javadoc result = new Javadoc(target);
result.setSourceRange(this.getStartPosition(), this.getLength());
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
result.setComment(getComment());
}
result.tags().addAll(ASTNode.copySubtrees(target, tags()));
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/LabeledStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/LabeledStatement.java
index 7c04756..08d8436 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/LabeledStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/LabeledStatement.java
@@ -58,7 +58,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/LineComment.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/LineComment.java
index cc8fd85..15ec4a6 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/LineComment.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/LineComment.java
@@ -47,7 +47,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MarkerAnnotation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MarkerAnnotation.java
index cd25047..c8f1a6e 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MarkerAnnotation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MarkerAnnotation.java
@@ -22,10 +22,10 @@
* </pre>
* </p>
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
* @since 3.0
*/
@@ -56,7 +56,7 @@
* Returns a list of structural property descriptors for this node type.
* Clients must not modify the result.
*
- * @param apiLevel the API level; one of the AST.LEVEL_* constants
+ * @param apiLevel the API level; one of the AST.JLS* constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberRef.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberRef.java
index 256eb8d..306ef4e 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberRef.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberRef.java
@@ -60,7 +60,7 @@
* Returns a list of structural property descriptors for this node type.
* Clients must not modify the result.
*
- * @param apiLevel the API level; one of the AST.LEVEL_* constants
+ * @param apiLevel the API level; one of the AST.JLS* constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberValuePair.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberValuePair.java
index cf3b219..c3e576b 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberValuePair.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberValuePair.java
@@ -24,10 +24,10 @@
* including other annotations.
* </p>
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
* @see NormalAnnotation
* @since 3.0
@@ -66,7 +66,7 @@
* Returns a list of structural property descriptors for this node type.
* Clients must not modify the result.
*
- * @param apiLevel the API level; one of the AST.LEVEL_* constants
+ * @param apiLevel the API level; one of the AST.JLS* constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
*/
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodDeclaration.java
index a432ea9..8962835 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodDeclaration.java
@@ -57,12 +57,6 @@
* no modifiers). The source range extends through the last character of the
* ";" token (if no body), or the last character of the block (if body).
* </p>
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @since 2.0
*/
@@ -201,13 +195,13 @@
* Returns a list of structural property descriptors for this node type.
* Clients must not modify the result.
*
- * @param apiLevel the API level; one of the AST.LEVEL_* constants
+ * @param apiLevel the API level; one of the AST.JLS* constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -294,7 +288,7 @@
*/
MethodDeclaration(AST ast) {
super(ast);
- if (ast.apiLevel >= AST.LEVEL_3_0) {
+ if (ast.apiLevel >= AST.JLS3) {
this.typeParameters = new ASTNode.NodeList(TYPE_PARAMETERS_PROPERTY);
}
}
@@ -451,12 +445,12 @@
result.setSourceRange(this.getStartPosition(), this.getLength());
result.setJavadoc(
(Javadoc) ASTNode.copySubtree(target, getJavadoc()));
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
result.setModifiers(getModifiers());
result.setReturnType(
(Type) ASTNode.copySubtree(target, getReturnType()));
}
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.modifiers().addAll(ASTNode.copySubtrees(target, modifiers()));
result.typeParameters().addAll(
ASTNode.copySubtrees(target, typeParameters()));
@@ -491,7 +485,7 @@
if (visitChildren) {
// visit children in normal left to right reading order
acceptChild(visitor, getJavadoc());
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
acceptChild(visitor, getReturnType());
} else {
acceptChildren(visitor, this.modifiers);
@@ -539,10 +533,10 @@
* available.
* </p>
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @return the live list of type parameters
@@ -618,10 +612,10 @@
* variable arity method (added in 3.0 API). The convenience method checks
* whether the last parameter is so marked.
* <p>
- * Note: Varible arity methods are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @return <code>true</code> if this is a variable arity method declaration,
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodInvocation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodInvocation.java
index ea34cde..edca58d 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodInvocation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodInvocation.java
@@ -97,14 +97,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -146,7 +146,7 @@
*/
MethodInvocation(AST ast) {
super(ast);
- if (ast.apiLevel >= AST.LEVEL_3_0) {
+ if (ast.apiLevel >= AST.JLS3) {
this.typeArguments = new ASTNode.NodeList(TYPE_ARGUMENTS_PROPERTY);
}
}
@@ -212,7 +212,7 @@
result.setName((SimpleName) getName().clone(target));
result.setExpression(
(Expression) ASTNode.copySubtree(target, getExpression()));
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.typeArguments().addAll(ASTNode.copySubtrees(target, typeArguments()));
}
result.arguments().addAll(ASTNode.copySubtrees(target, arguments()));
@@ -235,7 +235,7 @@
if (visitChildren) {
// visit children in normal left to right reading order
acceptChild(visitor, getExpression());
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
acceptChildren(visitor, this.typeArguments);
}
acceptChild(visitor, getName());
@@ -277,10 +277,10 @@
* Returns the live ordered list of type arguments of this method
* invocation (added in 3.0 API).
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @return the live list of type arguments
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodRef.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodRef.java
index de2643f..ab1307d 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodRef.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodRef.java
@@ -68,7 +68,7 @@
* Returns a list of structural property descriptors for this node type.
* Clients must not modify the result.
*
- * @param apiLevel the API level; one of the AST.LEVEL_* constants
+ * @param apiLevel the API level; one of the AST.JLS* constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodRefParameter.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodRefParameter.java
index a3b56ca..207bced 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodRefParameter.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodRefParameter.java
@@ -58,7 +58,7 @@
* Returns a list of structural property descriptors for this node type.
* Clients must not modify the result.
*
- * @param apiLevel the API level; one of the AST.LEVEL_* constants
+ * @param apiLevel the API level; one of the AST.JLS* constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Modifier.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Modifier.java
index f3ed4cf..f28f11a 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Modifier.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Modifier.java
@@ -37,12 +37,6 @@
* Note that Java model class {@link org.eclipse.jdt.core.Flags} also
* provides the same constants as this class.
* </p>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @since 2.0
*/
@@ -450,7 +444,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NaiveASTFlattener.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NaiveASTFlattener.java
index ef17214..d6cbaeb 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NaiveASTFlattener.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NaiveASTFlattener.java
@@ -349,10 +349,10 @@
this.buffer.append(".");//$NON-NLS-1$
}
this.buffer.append("new ");//$NON-NLS-1$
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
node.getName().accept(this);
}
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
if (!node.typeArguments().isEmpty()) {
this.buffer.append("<");//$NON-NLS-1$
for (Iterator it = node.typeArguments().iterator(); it.hasNext(); ) {
@@ -415,7 +415,7 @@
* @see ASTVisitor#visit(ConstructorInvocation)
*/
public boolean visit(ConstructorInvocation node) {
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
if (!node.typeArguments().isEmpty()) {
this.buffer.append("<");//$NON-NLS-1$
for (Iterator it = node.typeArguments().iterator(); it.hasNext(); ) {
@@ -589,10 +589,10 @@
if (node.getJavadoc() != null) {
node.getJavadoc().accept(this);
}
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
printModifiers(node.getModifiers());
}
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
printModifiers(node.modifiers());
}
node.getType().accept(this);
@@ -651,7 +651,7 @@
*/
public boolean visit(ImportDeclaration node) {
this.buffer.append("import ");//$NON-NLS-1$
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
if (node.isStatic()) {
this.buffer.append("static ");//$NON-NLS-1$
}
@@ -698,10 +698,10 @@
if (node.getJavadoc() != null) {
node.getJavadoc().accept(this);
}
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
printModifiers(node.getModifiers());
}
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
printModifiers(node.modifiers());
}
node.getBody().accept(this);
@@ -816,10 +816,10 @@
if (node.getJavadoc() != null) {
node.getJavadoc().accept(this);
}
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
printModifiers(node.getModifiers());
}
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
printModifiers(node.modifiers());
if (!node.typeParameters().isEmpty()) {
this.buffer.append("<");//$NON-NLS-1$
@@ -834,7 +834,7 @@
}
}
if (!node.isConstructor()) {
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
node.getReturnType().accept(this);
} else {
if (node.getReturnType2() != null) {
@@ -886,7 +886,7 @@
node.getExpression().accept(this);
this.buffer.append(".");//$NON-NLS-1$
}
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
if (!node.typeArguments().isEmpty()) {
this.buffer.append("<");//$NON-NLS-1$
for (Iterator it = node.typeArguments().iterator(); it.hasNext(); ) {
@@ -960,7 +960,7 @@
* @see ASTVisitor#visit(PackageDeclaration)
*/
public boolean visit(PackageDeclaration node) {
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
if (node.getJavadoc() != null) {
node.getJavadoc().accept(this);
}
@@ -977,10 +977,6 @@
}
/*
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
* @see ASTVisitor#visit(ParameterizedType)
* @since 3.0
*/
@@ -1100,14 +1096,14 @@
* @see ASTVisitor#visit(SingleVariableDeclaration)
*/
public boolean visit(SingleVariableDeclaration node) {
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
printModifiers(node.getModifiers());
}
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
printModifiers(node.modifiers());
}
node.getType().accept(this);
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
if (node.isVarargs()) {
this.buffer.append("...");//$NON-NLS-1$
}
@@ -1140,7 +1136,7 @@
node.getExpression().accept(this);
this.buffer.append(".");//$NON-NLS-1$
}
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
if (!node.typeArguments().isEmpty()) {
this.buffer.append("<");//$NON-NLS-1$
for (Iterator it = node.typeArguments().iterator(); it.hasNext(); ) {
@@ -1187,7 +1183,7 @@
this.buffer.append(".");//$NON-NLS-1$
}
this.buffer.append("super.");//$NON-NLS-1$
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
if (!node.typeArguments().isEmpty()) {
this.buffer.append("<");//$NON-NLS-1$
for (Iterator it = node.typeArguments().iterator(); it.hasNext(); ) {
@@ -1350,15 +1346,15 @@
if (node.getJavadoc() != null) {
node.getJavadoc().accept(this);
}
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
printModifiers(node.getModifiers());
}
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
printModifiers(node.modifiers());
}
this.buffer.append(node.isInterface() ? "interface " : "class ");//$NON-NLS-2$//$NON-NLS-1$
node.getName().accept(this);
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
if (!node.typeParameters().isEmpty()) {
this.buffer.append("<");//$NON-NLS-1$
for (Iterator it = node.typeParameters().iterator(); it.hasNext(); ) {
@@ -1372,7 +1368,7 @@
}
}
this.buffer.append(" ");//$NON-NLS-1$
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
if (node.getSuperclass() != null) {
this.buffer.append("extends ");//$NON-NLS-1$
node.getSuperclass().accept(this);
@@ -1390,7 +1386,7 @@
this.buffer.append(" ");//$NON-NLS-1$
}
}
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
if (node.getSuperclassType() != null) {
this.buffer.append("extends ");//$NON-NLS-1$
node.getSuperclassType().accept(this);
@@ -1433,10 +1429,10 @@
* @see ASTVisitor#visit(TypeDeclarationStatement)
*/
public boolean visit(TypeDeclarationStatement node) {
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
node.getTypeDeclaration().accept(this);
}
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
node.getDeclaration().accept(this);
}
return false;
@@ -1452,10 +1448,6 @@
}
/*
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
* @see ASTVisitor#visit(TypeParameter)
* @since 3.0
*/
@@ -1478,10 +1470,10 @@
* @see ASTVisitor#visit(VariableDeclarationExpression)
*/
public boolean visit(VariableDeclarationExpression node) {
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
printModifiers(node.getModifiers());
}
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
printModifiers(node.modifiers());
}
node.getType().accept(this);
@@ -1515,10 +1507,10 @@
* @see ASTVisitor#visit(VariableDeclarationStatement)
*/
public boolean visit(VariableDeclarationStatement node) {
- if (node.getAST().apiLevel() == AST.LEVEL_2_0) {
+ if (node.getAST().apiLevel() == AST.JLS2) {
printModifiers(node.getModifiers());
}
- if (node.getAST().apiLevel() >= AST.LEVEL_3_0) {
+ if (node.getAST().apiLevel() >= AST.JLS3) {
printModifiers(node.modifiers());
}
node.getType().accept(this);
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NormalAnnotation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NormalAnnotation.java
index baf1abe..9c97905 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NormalAnnotation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NormalAnnotation.java
@@ -21,10 +21,10 @@
* </pre>
* </p>
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
* @since 3.0
*/
@@ -62,7 +62,7 @@
* Returns a list of structural property descriptors for this node type.
* Clients must not modify the result.
*
- * @param apiLevel the API level; one of the AST.LEVEL_* constants
+ * @param apiLevel the API level; one of the AST.JLS* constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NullLiteral.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NullLiteral.java
index 370ddfa..ae6ac0e 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NullLiteral.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NullLiteral.java
@@ -37,7 +37,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NumberLiteral.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NumberLiteral.java
index 7cf1772..c55f158 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NumberLiteral.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NumberLiteral.java
@@ -49,7 +49,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PackageDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PackageDeclaration.java
index 82e6688..0c63088 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PackageDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PackageDeclaration.java
@@ -26,12 +26,6 @@
* PackageDeclaration:
* [ Javadoc ] { Annotation } <b>package</b> Name <b>;</b>
* </pre>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @since 2.0
*/
@@ -91,14 +85,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -140,7 +134,7 @@
*/
PackageDeclaration(AST ast) {
super(ast);
- if (ast.apiLevel >= AST.LEVEL_3_0) {
+ if (ast.apiLevel >= AST.JLS3) {
this.annotations = new ASTNode.NodeList(ANNOTATIONS_PROPERTY);
}
}
@@ -200,7 +194,7 @@
ASTNode clone0(AST target) {
PackageDeclaration result = new PackageDeclaration(target);
result.setSourceRange(this.getStartPosition(), this.getLength());
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.setJavadoc((Javadoc) ASTNode.copySubtree(target, getJavadoc()));
result.annotations().addAll(ASTNode.copySubtrees(target, annotations()));
}
@@ -222,7 +216,7 @@
void accept0(ASTVisitor visitor) {
boolean visitChildren = visitor.visit(this);
if (visitChildren) {
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
acceptChild(visitor, getJavadoc());
acceptChildren(visitor, this.annotations);
}
@@ -235,10 +229,10 @@
* Returns the live ordered list of annotations of this
* package declaration (added in 3.0 API).
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @return the live list of annotations
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ParameterizedType.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ParameterizedType.java
index a4a5a9f..aa74acc 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ParameterizedType.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ParameterizedType.java
@@ -24,10 +24,10 @@
* The first type may be a simple type or a qualified type;
* other kinds of types are meaningless.
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @since 3.0
@@ -67,7 +67,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ParenthesizedExpression.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ParenthesizedExpression.java
index 93a13e0..f8a9435 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ParenthesizedExpression.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ParenthesizedExpression.java
@@ -50,7 +50,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PostfixExpression.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PostfixExpression.java
index 97bda23..18e312a 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PostfixExpression.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PostfixExpression.java
@@ -135,7 +135,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PrefixExpression.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PrefixExpression.java
index 84fa290..f483663 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PrefixExpression.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PrefixExpression.java
@@ -151,7 +151,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PrimitiveType.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PrimitiveType.java
index e8d9f6c..896d719 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PrimitiveType.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/PrimitiveType.java
@@ -177,7 +177,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/QualifiedName.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/QualifiedName.java
index a1ba48c..c00899e 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/QualifiedName.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/QualifiedName.java
@@ -65,7 +65,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/QualifiedType.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/QualifiedType.java
index 1a47680..8a16009 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/QualifiedType.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/QualifiedType.java
@@ -39,12 +39,6 @@
* either rather than make assumptions. (Note also that the first form
* became possible as of 3.0; only the second form existed in 2.0 and 2.1.)
* </p>
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @since 3.0
*/
@@ -83,7 +77,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ReturnStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ReturnStatement.java
index 8cc7d9c..1815814 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ReturnStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ReturnStatement.java
@@ -50,7 +50,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SimpleName.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SimpleName.java
index 11854bd..f80bce1 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SimpleName.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SimpleName.java
@@ -55,7 +55,7 @@
* Returns a list of structural property descriptors for this node type.
* Clients must not modify the result.
*
- * @param apiLevel the API level; one of the AST.LEVEL_* constants
+ * @param apiLevel the API level; one of the AST.JLS* constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SimpleType.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SimpleType.java
index be97f4e..445f503 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SimpleType.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SimpleType.java
@@ -19,12 +19,6 @@
* This kind of node is used to convert a name (<code>Name</code>) into a type
* (<code>Type</code>) by wrapping it.
* </p>
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @since 2.0
*/
@@ -55,7 +49,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleMemberAnnotation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleMemberAnnotation.java
index f3fbf5a..ff3c053 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleMemberAnnotation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleMemberAnnotation.java
@@ -24,10 +24,10 @@
* including other annotations.
* </p>
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
* @since 3.0
*/
@@ -66,7 +66,7 @@
* Returns a list of structural property descriptors for this node type.
* Clients must not modify the result.
*
- * @param apiLevel the API level; one of the AST.LEVEL_* constants
+ * @param apiLevel the API level; one of the AST.JLS* constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleVariableDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleVariableDeclaration.java
index 32cd478..2f22804 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleVariableDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleVariableDeclaration.java
@@ -126,13 +126,13 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -201,7 +201,7 @@
*/
SingleVariableDeclaration(AST ast) {
super(ast);
- if (ast.apiLevel >= AST.LEVEL_3_0) {
+ if (ast.apiLevel >= AST.JLS3) {
this.modifiers = new ASTNode.NodeList(MODIFIERS2_PROPERTY);
}
}
@@ -309,7 +309,7 @@
ASTNode clone0(AST target) {
SingleVariableDeclaration result = new SingleVariableDeclaration(target);
result.setSourceRange(this.getStartPosition(), this.getLength());
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
result.setModifiers(getModifiers());
} else {
result.modifiers().addAll(ASTNode.copySubtrees(target, modifiers()));
@@ -338,7 +338,7 @@
boolean visitChildren = visitor.visit(this);
if (visitChildren) {
// visit children in normal left to right reading order
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
acceptChildren(visitor, this.modifiers);
}
acceptChild(visitor, getType());
@@ -355,12 +355,6 @@
* Note that the final modifier is the only meaningful modifier for local
* variable and formal parameter declarations.
* </p>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return the live list of modifiers and annotations
* (element type: <code>IExtendedModifier</code>)
@@ -502,10 +496,10 @@
* Returns whether this declaration declares the last parameter of
* a variable arity method (added in 3.0 API).
* <p>
- * Note: Varible arity methods are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @return <code>true</code> if this is a variable arity parameter declaration,
@@ -526,10 +520,10 @@
* Sets whether this declaration declares the last parameter of
* a variable arity method (added in 3.0 API).
* <p>
- * Note: Varible arity methods are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @param variableArity <code>true</code> if this is a variable arity
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/StringLiteral.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/StringLiteral.java
index fb206a5..a5dcca1 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/StringLiteral.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/StringLiteral.java
@@ -49,7 +49,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SuperConstructorInvocation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SuperConstructorInvocation.java
index 45c2cf3..cd7f3f8 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SuperConstructorInvocation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SuperConstructorInvocation.java
@@ -87,14 +87,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -130,7 +130,7 @@
*/
SuperConstructorInvocation(AST ast) {
super(ast);
- if (ast.apiLevel >= AST.LEVEL_3_0) {
+ if (ast.apiLevel >= AST.JLS3) {
this.typeArguments = new ASTNode.NodeList(TYPE_ARGUMENTS_PROPERTY);
}
}
@@ -188,7 +188,7 @@
result.copyLeadingComment(this);
result.setExpression(
(Expression) ASTNode.copySubtree(target, getExpression()));
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.typeArguments().addAll(ASTNode.copySubtrees(target, typeArguments()));
}
result.arguments().addAll(ASTNode.copySubtrees(target, arguments()));
@@ -211,7 +211,7 @@
if (visitChildren) {
// visit children in normal left to right reading order
acceptChild(visitor, getExpression());
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
acceptChildren(visitor, this.typeArguments);
}
acceptChildren(visitor, this.arguments);
@@ -253,10 +253,10 @@
* Returns the live ordered list of type arguments of this constructor
* invocation (added in 3.0 API).
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @return the live list of type arguments
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SuperFieldAccess.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SuperFieldAccess.java
index b005c8e..666c12e 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SuperFieldAccess.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SuperFieldAccess.java
@@ -64,7 +64,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SuperMethodInvocation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SuperMethodInvocation.java
index 11314b9..e70768c 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SuperMethodInvocation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SuperMethodInvocation.java
@@ -97,14 +97,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -146,7 +146,7 @@
*/
SuperMethodInvocation(AST ast) {
super(ast);
- if (ast.apiLevel >= AST.LEVEL_3_0) {
+ if (ast.apiLevel >= AST.JLS3) {
this.typeArguments = new ASTNode.NodeList(TYPE_ARGUMENTS_PROPERTY);
}
}
@@ -211,7 +211,7 @@
result.setSourceRange(this.getStartPosition(), this.getLength());
result.setName((SimpleName) getName().clone(target));
result.setQualifier((Name) ASTNode.copySubtree(target, getQualifier()));
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.typeArguments().addAll(ASTNode.copySubtrees(target, typeArguments()));
}
result.arguments().addAll(ASTNode.copySubtrees(target, arguments()));
@@ -234,7 +234,7 @@
if (visitChildren) {
// visit children in normal left to right reading order
acceptChild(visitor, getQualifier());
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
acceptChildren(visitor, this.typeArguments);
}
acceptChild(visitor, getName());
@@ -275,10 +275,10 @@
* Returns the live ordered list of type arguments of this method
* invocation (added in 3.0 API).
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @return the live list of type arguments
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchCase.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchCase.java
index 2251d98..d976f20 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchCase.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchCase.java
@@ -53,7 +53,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchStatement.java
index 5454df8..f9f6fa5 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchStatement.java
@@ -65,7 +65,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SynchronizedStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SynchronizedStatement.java
index 4292fef..0f75787 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SynchronizedStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SynchronizedStatement.java
@@ -58,7 +58,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TagElement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TagElement.java
index da26d39..b3fb6cc 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TagElement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TagElement.java
@@ -68,7 +68,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TextElement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TextElement.java
index 6e6a16b..4573d89 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TextElement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TextElement.java
@@ -52,7 +52,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ThisExpression.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ThisExpression.java
index 2990822..505cc87 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ThisExpression.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ThisExpression.java
@@ -55,7 +55,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ThrowStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ThrowStatement.java
index 469bc45..b9c101c 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ThrowStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ThrowStatement.java
@@ -50,7 +50,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TryStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TryStatement.java
index 90863df..1a8807a 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TryStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TryStatement.java
@@ -68,7 +68,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Type.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Type.java
index fb2a8c3..730eed3 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Type.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Type.java
@@ -49,12 +49,6 @@
* <b>?</b> [ ( <b>extends</b> | <b>super</b>) Type ]
* </pre>
* </p>
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @since 2.0
*/
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeBinding.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeBinding.java
index 051ebdd..a84ae5d 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeBinding.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeBinding.java
@@ -21,6 +21,7 @@
import org.eclipse.jdt.internal.compiler.lookup.FieldBinding;
import org.eclipse.jdt.internal.compiler.lookup.PackageBinding;
import org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding;
+import org.eclipse.jdt.internal.compiler.problem.AbortCompilation;
/**
* Internal implementation of type bindings.
@@ -164,10 +165,14 @@
}
ReferenceBinding referenceBinding = (ReferenceBinding) this.binding;
if (referenceBinding.isNestedType()) {
- return this.resolver.getTypeBinding(referenceBinding.enclosingType());
- } else {
- return null;
+ try {
+ return this.resolver.getTypeBinding(referenceBinding.enclosingType());
+ } catch (AbortCompilation e) {
+ // in case the enclosing type cannot be resolvable due to missing jars on the classpath
+ // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=57871
+ }
}
+ return null;
}
/*
@@ -178,7 +183,14 @@
return null;
}
ReferenceBinding referenceBinding = (ReferenceBinding) this.binding;
- ReferenceBinding superclass = referenceBinding.superclass();
+ ReferenceBinding superclass = null;
+ try {
+ superclass = referenceBinding.superclass();
+ } catch (AbortCompilation e) {
+ // in case the superclass cannot be resolvable due to missing jars on the classpath
+ // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=57871
+ return this.resolver.resolveWellKnownType("java.lang.Object"); //$NON-NLS-1$
+ }
if (superclass == null) {
return null;
}
@@ -193,7 +205,16 @@
return NO_TYPE_BINDINGS;
}
ReferenceBinding referenceBinding = (ReferenceBinding) this.binding;
- ReferenceBinding[] interfaces = referenceBinding.superInterfaces();
+ ReferenceBinding[] interfaces = null;
+ try {
+ interfaces = referenceBinding.superInterfaces();
+ } catch (AbortCompilation e) {
+ // in case the one of the super interfaces cannot be resolvable due to missing jars on the classpath
+ // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=57871
+ }
+ if (interfaces == null) {
+ return NO_TYPE_BINDINGS;
+ }
int length = interfaces.length;
if (length == 0) {
return NO_TYPE_BINDINGS;
@@ -291,18 +312,22 @@
* @see ITypeBinding#getDeclaredTypes()
*/
public ITypeBinding[] getDeclaredTypes() {
- if (this.binding.isClass() || this.binding.isInterface()) {
- ReferenceBinding referenceBinding = (ReferenceBinding) this.binding;
- ReferenceBinding[] members = referenceBinding.memberTypes();
- int length = members.length;
- ITypeBinding[] newMembers = new ITypeBinding[length];
- for (int i = 0; i < length; i++) {
- newMembers[i] = this.resolver.getTypeBinding(members[i]);
+ try {
+ if (this.binding.isClass() || this.binding.isInterface()) {
+ ReferenceBinding referenceBinding = (ReferenceBinding) this.binding;
+ ReferenceBinding[] members = referenceBinding.memberTypes();
+ int length = members.length;
+ ITypeBinding[] newMembers = new ITypeBinding[length];
+ for (int i = 0; i < length; i++) {
+ newMembers[i] = this.resolver.getTypeBinding(members[i]);
+ }
+ return newMembers;
}
- return newMembers;
- } else {
- return NO_TYPE_BINDINGS;
+ } catch (AbortCompilation e) {
+ // in case a member types cannot be resolvable due to missing jars on the classpath
+ // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=57871
}
+ return NO_TYPE_BINDINGS;
}
/*
@@ -323,43 +348,51 @@
* @see ITypeBinding#getDeclaredFields()
*/
public IVariableBinding[] getDeclaredFields() {
- if (this.binding.isClass() || this.binding.isInterface()) {
- ReferenceBinding referenceBinding = (ReferenceBinding) this.binding;
- FieldBinding[] fields = referenceBinding.fields();
- int length = fields.length;
- IVariableBinding[] newFields = new IVariableBinding[length];
- for (int i = 0; i < length; i++) {
- newFields[i] = this.resolver.getVariableBinding(fields[i]);
+ try {
+ if (this.binding.isClass() || this.binding.isInterface()) {
+ ReferenceBinding referenceBinding = (ReferenceBinding) this.binding;
+ FieldBinding[] fields = referenceBinding.fields();
+ int length = fields.length;
+ IVariableBinding[] newFields = new IVariableBinding[length];
+ for (int i = 0; i < length; i++) {
+ newFields[i] = this.resolver.getVariableBinding(fields[i]);
+ }
+ return newFields;
}
- return newFields;
- } else {
- return NO_VARIABLE_BINDINGS;
+ } catch (AbortCompilation e) {
+ // in case a field cannot be resolvable due to missing jars on the classpath
+ // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=57871
}
+ return NO_VARIABLE_BINDINGS;
}
/*
* @see ITypeBinding#getDeclaredMethods()
*/
public IMethodBinding[] getDeclaredMethods() {
- if (this.binding.isClass() || this.binding.isInterface()) {
- ReferenceBinding referenceBinding = (ReferenceBinding) this.binding;
- org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] methods = referenceBinding.methods();
- int length = methods.length;
- int removeSyntheticsCounter = 0;
- IMethodBinding[] newMethods = new IMethodBinding[length];
- for (int i = 0; i < length; i++) {
- org.eclipse.jdt.internal.compiler.lookup.MethodBinding methodBinding = methods[i];
- if (!shouldBeRemoved(methodBinding)) {
- newMethods[removeSyntheticsCounter++] = this.resolver.getMethodBinding(methodBinding);
+ try {
+ if (this.binding.isClass() || this.binding.isInterface()) {
+ ReferenceBinding referenceBinding = (ReferenceBinding) this.binding;
+ org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] methods = referenceBinding.methods();
+ int length = methods.length;
+ int removeSyntheticsCounter = 0;
+ IMethodBinding[] newMethods = new IMethodBinding[length];
+ for (int i = 0; i < length; i++) {
+ org.eclipse.jdt.internal.compiler.lookup.MethodBinding methodBinding = methods[i];
+ if (!shouldBeRemoved(methodBinding)) {
+ newMethods[removeSyntheticsCounter++] = this.resolver.getMethodBinding(methodBinding);
+ }
}
+ if (removeSyntheticsCounter != length) {
+ System.arraycopy(newMethods, 0, (newMethods = new IMethodBinding[removeSyntheticsCounter]), 0, removeSyntheticsCounter);
+ }
+ return newMethods;
}
- if (removeSyntheticsCounter != length) {
- System.arraycopy(newMethods, 0, (newMethods = new IMethodBinding[removeSyntheticsCounter]), 0, removeSyntheticsCounter);
- }
- return newMethods;
- } else {
- return NO_METHOD_BINDINGS;
+ } catch (AbortCompilation e) {
+ // in case a method cannot be resolvable due to missing jars on the classpath
+ // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=57871
}
+ return NO_METHOD_BINDINGS;
}
private boolean shouldBeRemoved(org.eclipse.jdt.internal.compiler.lookup.MethodBinding methodBinding) {
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeDeclaration.java
index 2eb6491..badbc68 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeDeclaration.java
@@ -61,12 +61,6 @@
* modifiers or annotations). The source range extends through the last character of the "}"
* token following the body declarations.
* </p>
- * <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @since 2.0
*/
@@ -196,14 +190,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -271,10 +265,10 @@
*/
TypeDeclaration(AST ast) {
super(ast);
- if (ast.apiLevel == AST.LEVEL_2_0) {
+ if (ast.apiLevel == AST.JLS2) {
this.superInterfaceNames = new ASTNode.NodeList(SUPER_INTERFACES_PROPERTY);
}
- if (ast.apiLevel >= AST.LEVEL_3_0) {
+ if (ast.apiLevel >= AST.JLS3) {
this.typeParameters = new ASTNode.NodeList(TYPE_PARAMETERS_PROPERTY);
this.superInterfaceTypes = new ASTNode.NodeList(SUPER_INTERFACE_TYPES_PROPERTY);
}
@@ -434,7 +428,7 @@
result.setSourceRange(this.getStartPosition(), this.getLength());
result.setJavadoc(
(Javadoc) ASTNode.copySubtree(target, getJavadoc()));
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
result.setModifiers(getModifiers());
result.setSuperclass(
(Name) ASTNode.copySubtree(target, getSuperclass()));
@@ -443,7 +437,7 @@
}
result.setInterface(isInterface());
result.setName((SimpleName) getName().clone(target));
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.modifiers().addAll(ASTNode.copySubtrees(target, modifiers()));
result.typeParameters().addAll(
ASTNode.copySubtrees(target, typeParameters()));
@@ -472,14 +466,14 @@
boolean visitChildren = visitor.visit(this);
if (visitChildren) {
// visit children in normal left to right reading order
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
acceptChild(visitor, getJavadoc());
acceptChild(visitor, getName());
acceptChild(visitor, getSuperclass());
acceptChildren(visitor, this.superInterfaceNames);
acceptChildren(visitor, this.bodyDeclarations);
}
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
acceptChild(visitor, getJavadoc());
acceptChildren(visitor, this.modifiers);
acceptChild(visitor, getName());
@@ -521,10 +515,10 @@
* Returns the live ordered list of type parameters of this type
* declaration (added in 3.0 API). This list is non-empty for parameterized types.
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @return the live list of type parameters
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeDeclarationStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeDeclarationStatement.java
index 97928a1..07de5cf 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeDeclarationStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeDeclarationStatement.java
@@ -83,14 +83,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeLiteral.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeLiteral.java
index da6b22a..9fc281b 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeLiteral.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeLiteral.java
@@ -50,7 +50,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeParameter.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeParameter.java
index 14ee931..42a586a 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeParameter.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeParameter.java
@@ -20,10 +20,10 @@
* TypeVariable [ <b>extends</b> Type { <b>&</b> Type } ]
* </pre>
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @since 3.0
@@ -63,7 +63,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclarationExpression.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclarationExpression.java
index 1dd9596..52d10c1 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclarationExpression.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclarationExpression.java
@@ -105,14 +105,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -159,7 +159,7 @@
*/
VariableDeclarationExpression(AST ast) {
super(ast);
- if (ast.apiLevel >= AST.LEVEL_3_0) {
+ if (ast.apiLevel >= AST.JLS3) {
this.modifiers = new ASTNode.NodeList(MODIFIERS2_PROPERTY);
}
}
@@ -231,10 +231,10 @@
VariableDeclarationExpression result =
new VariableDeclarationExpression(target);
result.setSourceRange(this.getStartPosition(), this.getLength());
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
result.setModifiers(getModifiers());
}
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.modifiers().addAll(ASTNode.copySubtrees(target, modifiers()));
}
result.setType((Type) getType().clone(target));
@@ -259,7 +259,7 @@
boolean visitChildren = visitor.visit(this);
if (visitChildren) {
// visit children in normal left to right reading order
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
acceptChildren(visitor, this.modifiers);
}
acceptChild(visitor, getType());
@@ -276,10 +276,10 @@
* variable declarations.
* </p>
* <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @return the live list of modifiers and annotations
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclarationFragment.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclarationFragment.java
index 03e231d..3a2332a 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclarationFragment.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclarationFragment.java
@@ -71,7 +71,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclarationStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclarationStatement.java
index 55d04aa..5594c76 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclarationStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclarationStatement.java
@@ -103,14 +103,14 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
* @since 3.0
*/
public static List propertyDescriptors(int apiLevel) {
- if (apiLevel == AST.LEVEL_2_0) {
+ if (apiLevel == AST.JLS2) {
return PROPERTY_DESCRIPTORS_2_0;
} else {
return PROPERTY_DESCRIPTORS_3_0;
@@ -157,7 +157,7 @@
*/
VariableDeclarationStatement(AST ast) {
super(ast);
- if (ast.apiLevel >= AST.LEVEL_3_0) {
+ if (ast.apiLevel >= AST.JLS3) {
this.modifiers = new ASTNode.NodeList(MODIFIERS2_PROPERTY);
}
}
@@ -230,10 +230,10 @@
new VariableDeclarationStatement(target);
result.setSourceRange(this.getStartPosition(), this.getLength());
result.copyLeadingComment(this);
- if (this.ast.apiLevel == AST.LEVEL_2_0) {
+ if (this.ast.apiLevel == AST.JLS2) {
result.setModifiers(getModifiers());
}
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
result.modifiers().addAll(ASTNode.copySubtrees(target, modifiers()));
}
result.setType((Type) getType().clone(target));
@@ -257,7 +257,7 @@
boolean visitChildren = visitor.visit(this);
if (visitChildren) {
// visit children in normal left to right reading order
- if (this.ast.apiLevel >= AST.LEVEL_3_0) {
+ if (this.ast.apiLevel >= AST.JLS3) {
acceptChildren(visitor, this.modifiers);
}
acceptChild(visitor, getType());
@@ -273,12 +273,6 @@
* Note that the final modifier is the only meaningful modifier for local
* variable declarations.
* </p>
- * <p>
- * Note: Support for annotation metadata is an experimental language feature
- * under discussion in JSR-175 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
*
* @return the live list of modifiers and annotations
* (element type: <code>IExtendedModifier</code>)
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/WhileStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/WhileStatement.java
index c108bd1..731bf08 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/WhileStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/WhileStatement.java
@@ -58,7 +58,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/WildcardType.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/WildcardType.java
index 0bc3622..6f4c815 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/WildcardType.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/WildcardType.java
@@ -25,10 +25,10 @@
* argument of a <code>ParameterizedType</code> node.
* </p>
* <p>
- * Note: Support for generic types is an experimental language feature
- * under discussion in JSR-014 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @since 3.0
@@ -68,7 +68,7 @@
* Clients must not modify the result.
*
* @param apiLevel the API level; one of the
- * <code>AST.LEVEL_*</code> constants
+ * <code>AST.JLS*</code> constants
* @return a list of property descriptors (element type:
* {@link StructuralPropertyDescriptor})
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ASTRewrite.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ASTRewrite.java
index 0c4efd7..2a622e2 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ASTRewrite.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ASTRewrite.java
@@ -49,7 +49,7 @@
* </p>
* <pre>
* Document doc = new Document("import java.util.List;\nclass X {}\n");
- * ASTParser parser = ASTParser.newParser(AST.LEVEL_2_0);
+ * ASTParser parser = ASTParser.newParser(AST.JLS2);
* parser.setSource(doc.get().toCharArray());
* CompilationUnit cu = (CompilationUnit) parser.createAST(null);
* AST ast = cu.getAST();
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java
index b6d115c..8458d89 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java
@@ -2400,23 +2400,20 @@
CompilationUnitDeclaration compilationUnitDeclaration,
CompilationUnitScope scope) {
+ // fake new line to handle empty lines before package declaration or import declarations
+ this.scribe.lastNumberOfNewLines = 1;
/*
* Package declaration
*/
if (compilationUnitDeclaration.currentPackage != null) {
if (hasComments()) {
this.scribe.printComment();
- // add a fake new line to add potential blank lines
- int blankLinesBeforePackage = this.preferences.blank_lines_before_package;
- if (blankLinesBeforePackage > 0) {
- this.scribe.printEmptyLines(blankLinesBeforePackage);
- }
- } else {
- int blankLinesBeforePackage = this.preferences.blank_lines_before_package;
- if (blankLinesBeforePackage > 0) {
- this.scribe.printEmptyLines(blankLinesBeforePackage - 1);
- }
}
+ int blankLinesBeforePackage = this.preferences.blank_lines_before_package;
+ if (blankLinesBeforePackage > 0) {
+ this.scribe.printEmptyLines(blankLinesBeforePackage);
+ }
+
// dump the package keyword
this.scribe.printNextToken(TerminalTokens.TokenNamepackage);
this.scribe.space();
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatter.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatter.java
index a13378a..af35d37 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatter.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatter.java
@@ -10,6 +10,7 @@
******************************************************************************/
package org.eclipse.jdt.internal.formatter;
+import java.util.HashMap;
import java.util.Map;
import org.eclipse.jdt.core.formatter.CodeFormatter;
@@ -19,6 +20,7 @@
import org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration;
import org.eclipse.jdt.internal.compiler.ast.ConstructorDeclaration;
import org.eclipse.jdt.internal.compiler.ast.Expression;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import org.eclipse.jdt.internal.core.util.CodeSnippetParsingUtil;
import org.eclipse.text.edits.TextEdit;
@@ -28,6 +30,7 @@
private CodeFormatterVisitor newCodeFormatter;
private Map options;
+ private Map defaultCompilerOptions;
private DefaultCodeFormatterOptions preferences;
private CodeSnippetParsingUtil codeSnippetParsingUtil;
@@ -41,20 +44,16 @@
}
public DefaultCodeFormatter(DefaultCodeFormatterOptions defaultCodeFormatterOptions, Map options) {
- if (options == null) {
- options = JavaCore.getOptions();
- }
- this.options = options;
if (options != null) {
+ this.options = options;
this.preferences = new DefaultCodeFormatterOptions(options);
- if (defaultCodeFormatterOptions != null) {
- this.preferences.set(defaultCodeFormatterOptions.getMap());
- }
} else {
+ this.options = JavaCore.getOptions();
this.preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getDefaultSettings());
- if (defaultCodeFormatterOptions != null) {
- this.preferences.set(defaultCodeFormatterOptions.getMap());
- }
+ }
+ this.defaultCompilerOptions = getDefaultCompilerOptions();
+ if (defaultCodeFormatterOptions != null) {
+ this.preferences.set(defaultCodeFormatterOptions.getMap());
}
}
@@ -93,7 +92,7 @@
}
private TextEdit formatClassBodyDeclarations(String source, int indentationLevel, String lineSeparator, int offset, int length) {
- ASTNode[] bodyDeclarations = this.codeSnippetParsingUtil.parseClassBodyDeclarations(source.toCharArray(), this.options, true);
+ ASTNode[] bodyDeclarations = this.codeSnippetParsingUtil.parseClassBodyDeclarations(source.toCharArray(), getDefaultCompilerOptions(), true);
if (bodyDeclarations == null) {
// a problem occured while parsing the source
@@ -103,7 +102,7 @@
}
private TextEdit formatCompilationUnit(String source, int indentationLevel, String lineSeparator, int offset, int length) {
- CompilationUnitDeclaration compilationUnitDeclaration = this.codeSnippetParsingUtil.parseCompilationUnit(source.toCharArray(), this.options, true);
+ CompilationUnitDeclaration compilationUnitDeclaration = this.codeSnippetParsingUtil.parseCompilationUnit(source.toCharArray(), getDefaultCompilerOptions(), true);
if (lineSeparator != null) {
this.preferences.line_separator = lineSeparator;
@@ -112,13 +111,13 @@
}
this.preferences.initial_indentation_level = indentationLevel;
- this.newCodeFormatter = new CodeFormatterVisitor(this.preferences, options, offset, length, this.codeSnippetParsingUtil);
+ this.newCodeFormatter = new CodeFormatterVisitor(this.preferences, this.options, offset, length, this.codeSnippetParsingUtil);
return this.newCodeFormatter.format(source, compilationUnitDeclaration);
}
private TextEdit formatExpression(String source, int indentationLevel, String lineSeparator, int offset, int length) {
- Expression expression = this.codeSnippetParsingUtil.parseExpression(source.toCharArray(), this.options, true);
+ Expression expression = this.codeSnippetParsingUtil.parseExpression(source.toCharArray(), getDefaultCompilerOptions(), true);
if (expression == null) {
// a problem occured while parsing the source
@@ -128,7 +127,7 @@
}
private TextEdit formatStatements(String source, int indentationLevel, String lineSeparator, int offset, int length) {
- ConstructorDeclaration constructorDeclaration = this.codeSnippetParsingUtil.parseStatements(source.toCharArray(), this.options, true);
+ ConstructorDeclaration constructorDeclaration = this.codeSnippetParsingUtil.parseStatements(source.toCharArray(), getDefaultCompilerOptions(), true);
if (constructorDeclaration.statements == null) {
// a problem occured while parsing the source
@@ -141,6 +140,72 @@
return this.newCodeFormatter.scribe.toString();
}
+ private Map getDefaultCompilerOptions() {
+ if (this.defaultCompilerOptions == null) {
+ Map optionsMap = new HashMap(30);
+ optionsMap.put(CompilerOptions.OPTION_LocalVariableAttribute, CompilerOptions.DO_NOT_GENERATE);
+ optionsMap.put(CompilerOptions.OPTION_LineNumberAttribute, CompilerOptions.DO_NOT_GENERATE);
+ optionsMap.put(CompilerOptions.OPTION_SourceFileAttribute, CompilerOptions.DO_NOT_GENERATE);
+ optionsMap.put(CompilerOptions.OPTION_PreserveUnusedLocal, CompilerOptions.PRESERVE);
+ optionsMap.put(CompilerOptions.OPTION_DocCommentSupport, CompilerOptions.DISABLED);
+ optionsMap.put(CompilerOptions.OPTION_ReportMethodWithConstructorName, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportOverridingPackageDefaultMethod, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode, CompilerOptions.DISABLED);
+ optionsMap.put(CompilerOptions.OPTION_ReportDeprecationWhenOverridingDeprecatedMethod, CompilerOptions.DISABLED);
+ optionsMap.put(CompilerOptions.OPTION_ReportHiddenCatchBlock, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportUnusedLocal, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportUnusedParameter, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportUnusedImport, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportNoEffectAssignment, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportNoImplicitStringConversion, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportNonStaticAccessToStatic, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportIndirectStaticAccess, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportIncompatibleNonInheritedInterfaceMethod, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportUnusedPrivateMember, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportLocalVariableHiding, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportPossibleAccidentalBooleanAssignment, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportSuperfluousSemicolon, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportAssertIdentifier, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportUndocumentedEmptyBlock, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportUnnecessaryTypeCheck, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, CompilerOptions.PUBLIC);
+ optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadocTags, CompilerOptions.DISABLED);
+ optionsMap.put(CompilerOptions.OPTION_ReportMissingJavadocTags, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility, CompilerOptions.PUBLIC);
+ optionsMap.put(CompilerOptions.OPTION_ReportMissingJavadocTagsOverriding, CompilerOptions.DISABLED);
+ optionsMap.put(CompilerOptions.OPTION_ReportMissingJavadocComments, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsVisibility, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsOverriding, CompilerOptions.DISABLED);
+ optionsMap.put(CompilerOptions.OPTION_ReportFinallyBlockNotCompletingNormally, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportUnusedDeclaredThrownException, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_ReportUnusedDeclaredThrownExceptionWhenOverriding, CompilerOptions.DISABLED);
+ optionsMap.put(CompilerOptions.OPTION_ReportUnqualifiedFieldAccess, CompilerOptions.IGNORE);
+ optionsMap.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_4);
+ optionsMap.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_2);
+ optionsMap.put(CompilerOptions.OPTION_TaskTags, ""); //$NON-NLS-1$
+ optionsMap.put(CompilerOptions.OPTION_TaskPriorities, ""); //$NON-NLS-1$
+ optionsMap.put(CompilerOptions.OPTION_TaskCaseSensitive, CompilerOptions.DISABLED);
+ optionsMap.put(CompilerOptions.OPTION_ReportUnusedParameterWhenImplementingAbstract, CompilerOptions.DISABLED);
+ optionsMap.put(CompilerOptions.OPTION_ReportUnusedParameterWhenOverridingConcrete, CompilerOptions.DISABLED);
+ optionsMap.put(CompilerOptions.OPTION_ReportSpecialParameterHidingField, CompilerOptions.DISABLED);
+ optionsMap.put(CompilerOptions.OPTION_MaxProblemPerUnit, String.valueOf(100));
+ optionsMap.put(CompilerOptions.OPTION_InlineJsr, CompilerOptions.DISABLED);
+ this.defaultCompilerOptions = optionsMap;
+ }
+ Object sourceOption = this.options.get(CompilerOptions.OPTION_Source);
+ if (sourceOption != null) {
+ this.defaultCompilerOptions.put(CompilerOptions.OPTION_Source, sourceOption);
+ } else {
+ this.defaultCompilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_3);
+ }
+ return this.defaultCompilerOptions;
+ }
+
private TextEdit internalFormatClassBodyDeclarations(String source, int indentationLevel, String lineSeparator, ASTNode[] bodyDeclarations, int offset, int length) {
if (lineSeparator != null) {
this.preferences.line_separator = lineSeparator;
@@ -149,7 +214,7 @@
}
this.preferences.initial_indentation_level = indentationLevel;
- this.newCodeFormatter = new CodeFormatterVisitor(this.preferences, options, offset, length, this.codeSnippetParsingUtil);
+ this.newCodeFormatter = new CodeFormatterVisitor(this.preferences, this.options, offset, length, this.codeSnippetParsingUtil);
return this.newCodeFormatter.format(source, bodyDeclarations);
}
@@ -161,7 +226,7 @@
}
this.preferences.initial_indentation_level = indentationLevel;
- this.newCodeFormatter = new CodeFormatterVisitor(this.preferences, options, offset, length, this.codeSnippetParsingUtil);
+ this.newCodeFormatter = new CodeFormatterVisitor(this.preferences, this.options, offset, length, this.codeSnippetParsingUtil);
TextEdit textEdit = this.newCodeFormatter.format(source, expression);
return textEdit;
@@ -175,23 +240,23 @@
}
this.preferences.initial_indentation_level = indentationLevel;
- this.newCodeFormatter = new CodeFormatterVisitor(this.preferences, options, offset, length, this.codeSnippetParsingUtil);
+ this.newCodeFormatter = new CodeFormatterVisitor(this.preferences, this.options, offset, length, this.codeSnippetParsingUtil);
return this.newCodeFormatter.format(source, constructorDeclaration);
}
private TextEdit probeFormatting(String source, int indentationLevel, String lineSeparator, int offset, int length) {
- Expression expression = this.codeSnippetParsingUtil.parseExpression(source.toCharArray(), this.options, true);
+ Expression expression = this.codeSnippetParsingUtil.parseExpression(source.toCharArray(), getDefaultCompilerOptions(), true);
if (expression != null) {
return internalFormatExpression(source, indentationLevel, lineSeparator, expression, offset, length);
}
- ASTNode[] bodyDeclarations = this.codeSnippetParsingUtil.parseClassBodyDeclarations(source.toCharArray(), this.options, true);
+ ASTNode[] bodyDeclarations = this.codeSnippetParsingUtil.parseClassBodyDeclarations(source.toCharArray(), getDefaultCompilerOptions(), true);
if (bodyDeclarations != null) {
return internalFormatClassBodyDeclarations(source, indentationLevel, lineSeparator, bodyDeclarations, offset, length);
}
- ConstructorDeclaration constructorDeclaration = this.codeSnippetParsingUtil.parseStatements(source.toCharArray(), this.options, true);
+ ConstructorDeclaration constructorDeclaration = this.codeSnippetParsingUtil.parseStatements(source.toCharArray(), getDefaultCompilerOptions(), true);
if (constructorDeclaration.statements != null) {
return internalFormatStatements(source, indentationLevel, lineSeparator, constructorDeclaration, offset, length);
}
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICodeAssist.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICodeAssist.java
index e055bd3..d73f876 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICodeAssist.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICodeAssist.java
@@ -64,11 +64,17 @@
throws JavaModelException;
/**
+ * <b>DO NOT USE</b>: This API element was added in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0.
+ * It is currently unimplemented, and the API may change slightly before
+ * reaching its final form.
+ * <p>
* Performs code completion at the given offset position in this compilation unit,
* reporting results to the given completion requestor. The <code>offset</code>
* is the 0-based index of the character, after which code assist is desired.
* An <code>offset</code> of -1 indicates to code assist at the beginning of this
* compilation unit.
+ * <p>
*
* @param offset the given offset position
* @param requestor the given completion requestor
@@ -116,6 +122,11 @@
throws JavaModelException;
/**
+ * <b>DO NOT USE</b>: This API element was added in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0.
+ * It is currently unimplemented, and the API may change slightly before
+ * reaching its final form.
+ * <p>
* Performs code completion at the given offset position in this compilation unit,
* reporting results to the given completion requestor. The <code>offset</code>
* is the 0-based index of the character, after which code assist is desired.
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICompilationUnit.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICompilationUnit.java
index 2988336..61c8088 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICompilationUnit.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICompilationUnit.java
@@ -136,10 +136,10 @@
* is defined, are not treated as special cases. If they are specified, they are
* included in the result.
* <p>
- * Note: Static imports are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
+ * Note: This API element is only needed for dealing with Java code that uses
+ * new language features of J2SE 1.5. It is included in anticipation of J2SE
+ * 1.5 support, which is planned for the next release of Eclipse after 3.0, and
+ * may change slightly before reaching its final form.
* </p>
*
* @param name the name of the import declaration to add as defined by JLS2 7.5. (For example: <code>"java.io.File"</code> or
@@ -512,6 +512,10 @@
* creation of the DOM AST was not requested, or if the requested level of AST
* API is not supported, or if the working copy was already consistent.
* </p>
+ * <b>NOTE:</b>In Eclipse 3.0, there is no reconciler support for
+ * level AST.JLS3. This support is planned for the follow-on release of
+ * Eclipse which includes support for J2SE 1.5.
+ * </p>
*
* @param astLevel either {@link #NO_AST} if no AST is wanted,
* or the {@linkplain AST#AST(int) AST API level} of the AST if one is wanted
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IImportDeclaration.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IImportDeclaration.java
index e7a7fff..747ede1 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IImportDeclaration.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IImportDeclaration.java
@@ -32,10 +32,10 @@
/**
* Returns the modifier flags for this import. The flags can be examined using class
* <code>Flags</code>. Only the static flag is meaningful for import declarations.
- *
+ *
+ * @return the modifier flags for this import
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
- * @return the modifier flags for this import
* @see Flags
* @since 3.0
*/
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaCore.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaCore.java
index b4b2def..1df5d9d 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaCore.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaCore.java
@@ -1181,20 +1181,20 @@
JavaModelManager.getJavaModelManager().containerPut(project, containerPath, JavaModelManager.CONTAINER_INITIALIZATION_IN_PROGRESS); // avoid initialization cycles
boolean ok = false;
try {
- // wrap initializer call with Safe runnable in case initializer would be causing some grief
- Platform.run(new ISafeRunnable() {
- public void handleException(Throwable exception) {
- Util.log(exception, "Exception occurred in classpath container initializer: "+initializer); //$NON-NLS-1$
- }
- public void run() throws Exception {
- initializer.initialize(containerPath, project);
- }
- });
+ // let OperationCanceledException go through
+ // (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=59363)
+ initializer.initialize(containerPath, project);
// retrieve value (if initialization was successful)
container = JavaModelManager.getJavaModelManager().containerGet(project, containerPath);
if (container == JavaModelManager.CONTAINER_INITIALIZATION_IN_PROGRESS) return null; // break cycle
ok = true;
+ } catch (CoreException e) {
+ if (e instanceof JavaModelException) {
+ throw (JavaModelException) e;
+ } else {
+ throw new JavaModelException(e);
+ }
} catch (RuntimeException e) {
if (JavaModelManager.CP_RESOLVE_VERBOSE) {
e.printStackTrace();
@@ -1351,15 +1351,10 @@
JavaModelManager.getJavaModelManager().variablePut(variableName, JavaModelManager.VARIABLE_INITIALIZATION_IN_PROGRESS); // avoid initialization cycles
boolean ok = false;
try {
- // wrap initializer call with Safe runnable in case initializer would be causing some grief
- Platform.run(new ISafeRunnable() {
- public void handleException(Throwable exception) {
- Util.log(exception, "Exception occurred in classpath variable initializer: "+initializer+" while initializing variable: "+variableName); //$NON-NLS-1$ //$NON-NLS-2$
- }
- public void run() throws Exception {
- initializer.initialize(variableName);
- }
- });
+ // let OperationCanceledException go through
+ // (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=59363)
+ initializer.initialize(variableName);
+
variablePath = JavaModelManager.getJavaModelManager().variableGet(variableName); // initializer should have performed side-effect
if (variablePath == JavaModelManager.VARIABLE_INITIALIZATION_IN_PROGRESS) return null; // break cycle (initializer did not init or reentering call)
if (JavaModelManager.CP_RESOLVE_VERBOSE){
@@ -1369,6 +1364,16 @@
" variable path: " + variablePath); //$NON-NLS-1$
}
ok = true;
+ } catch (RuntimeException e) {
+ if (JavaModelManager.CP_RESOLVE_VERBOSE) {
+ e.printStackTrace();
+ }
+ throw e;
+ } catch (Error e) {
+ if (JavaModelManager.CP_RESOLVE_VERBOSE) {
+ e.printStackTrace();
+ }
+ throw e;
} finally {
if (!ok) JavaModelManager.getJavaModelManager().variablePut(variableName, null); // flush cache
}
@@ -2378,9 +2383,7 @@
* @return Return an array containing the names of all known user defined.
*/
public static String[] getUserLibraryNames() {
- return new String[0];
- // TODO (frederic) to be finalized in coordination with jdt-ui
- // return UserLibraryManager.getUserLibraryNames();
+ return UserLibraryManager.getUserLibraryNames();
}
/**
@@ -3688,7 +3691,15 @@
| IResourceChangeEvent.PRE_CLOSE);
startIndexing();
- workspace.addSaveParticipant(this, manager);
+
+ // process deltas since last activated
+ ISavedState savedState = workspace.addSaveParticipant(this, manager);
+ if (savedState != null) {
+ // the event type coming from the saved state is always POST_AUTO_BUILD
+ // force it to be POST_CHANGE so that the delta processor can handle it
+ manager.deltaState.eventType = IResourceChangeEvent.POST_CHANGE;
+ savedState.processResourceChangeEvents(manager.deltaState);
+ }
} catch (RuntimeException e) {
manager.shutdown();
throw e;
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMImport.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMImport.java
index 8d91307..569cb1e 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMImport.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMImport.java
@@ -38,12 +38,6 @@
/**
* Returns the modifier flags for this import. The flags can be examined using class
* <code>Flags</code>. Only the static flag is meaningful for import declarations.
- * <p>
- * Note: Static imports are an experimental language feature
- * under discussion in JSR-201 and under consideration for inclusion
- * in the 1.5 release of J2SE. The support here is therefore tentative
- * and subject to change.
- * </p>
* @return the modifier flags for this import
* @see Flags
* @since 3.0
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CompilationUnit.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CompilationUnit.java
index 76728e6..ec48d55 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CompilationUnit.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CompilationUnit.java
@@ -1083,10 +1083,10 @@
if (workingCopyOwner == null) workingCopyOwner = DefaultWorkingCopyOwner.PRIMARY;
boolean createAST = false;
- if (astLevel == AST.LEVEL_2_0) {
+ if (astLevel == AST.JLS2) {
// client asking for level 2 AST; these are supported
createAST = true;
- } else if (astLevel == AST.LEVEL_3_0) {
+ } else if (astLevel == AST.JLS3) {
// client asking for level 3 ASTs; these are not supported
// TODO (jerome) - these should also be supported in 1.5 stream
createAST = false;
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeltaProcessingState.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeltaProcessingState.java
index 9933fec..d4e3d80 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeltaProcessingState.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeltaProcessingState.java
@@ -77,6 +77,11 @@
* This is a cache of the projects before any project addition/deletion has started.
*/
public IJavaProject[] modelProjectsCache;
+
+ /*
+ * Type of event that is being processed.
+ */
+ public int eventType = -1;
/*
* Need to clone defensively the listener information, in case some listener is reacting to some notification iteration by adding/changing/removing
@@ -237,12 +242,14 @@
public void resourceChanged(IResourceChangeEvent event) {
try {
- getDeltaProcessor().resourceChanged(event);
+ if (this.eventType == -1) this.eventType = event.getType();
+ getDeltaProcessor().resourceChanged(event, this.eventType);
} finally {
// TODO (jerome) see 47631, may want to get rid of following so as to reuse delta processor ?
- if (event.getType() == IResourceChangeEvent.POST_CHANGE) {
+ if (this.eventType == IResourceChangeEvent.POST_CHANGE) {
this.deltaProcessors.set(null);
}
+ this.eventType = -1;
}
}
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeltaProcessor.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeltaProcessor.java
index 89001ad..816f48e 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeltaProcessor.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeltaProcessor.java
@@ -1822,13 +1822,13 @@
* @see IResourceDelta
* @see IResource
*/
- public void resourceChanged(IResourceChangeEvent event) {
+ public void resourceChanged(IResourceChangeEvent event, int eventType) {
if (event.getSource() instanceof IWorkspace) {
IResource resource = event.getResource();
IResourceDelta delta = event.getDelta();
- switch(event.getType()){
+ switch(eventType){
case IResourceChangeEvent.PRE_DELETE :
try {
if(resource.getType() == IResource.PROJECT
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java
index 359d72a..006b7b7 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java
@@ -214,20 +214,7 @@
projectContainers.put(containerPath, container);
}
}
-
- Preferences preferences = JavaCore.getPlugin().getPluginPreferences();
- String containerKey = CP_CONTAINER_PREFERENCES_PREFIX+project.getElementName() +"|"+containerPath;//$NON-NLS-1$
- String containerString = CP_ENTRY_IGNORE;
- try {
- if (container != null) {
- containerString = ((JavaProject)project).encodeClasspath(container.getClasspathEntries(), null, false);
- }
- } catch(JavaModelException e){
- // could not encode entry: leave it as CP_ENTRY_IGNORE
- }
- preferences.setDefault(containerKey, CP_ENTRY_IGNORE); // use this default to get rid of removed ones
- preferences.setValue(containerKey, containerString);
- JavaCore.getPlugin().savePluginPreferences();
+ // container values are persisted in preferences during save operations, see #saving(ISaveContext)
}
/**
@@ -1412,9 +1399,37 @@
*/
public void saving(ISaveContext context) throws CoreException {
- // clean up indexes on workspace full save
- // (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=52347)
+ // save container values on snapshot/full save
+ Preferences preferences = JavaCore.getPlugin().getPluginPreferences();
+ IJavaProject[] projects = getJavaModel().getJavaProjects();
+ for (int i = 0, length = projects.length; i < length; i++) {
+ IJavaProject project = projects[i];
+ Map projectContainers = (Map)this.containers.get(project);
+ if (projectContainers == null) continue;
+ for (Iterator keys = projectContainers.keySet().iterator(); keys.hasNext();) {
+ IPath containerPath = (IPath) keys.next();
+ IClasspathContainer container = (IClasspathContainer) projectContainers.get(containerPath);
+ String containerKey = CP_CONTAINER_PREFERENCES_PREFIX+project.getElementName() +"|"+containerPath;//$NON-NLS-1$
+ String containerString = CP_ENTRY_IGNORE;
+ try {
+ if (container != null) {
+ containerString = ((JavaProject)project).encodeClasspath(container.getClasspathEntries(), null, false);
+ }
+ } catch(JavaModelException e){
+ // could not encode entry: leave it as CP_ENTRY_IGNORE
+ }
+ preferences.setDefault(containerKey, CP_ENTRY_IGNORE); // use this default to get rid of removed ones
+ preferences.setValue(containerKey, containerString);
+ }
+ }
+ JavaCore.getPlugin().savePluginPreferences();
+
if (context.getKind() == ISaveContext.FULL_SAVE) {
+ // will need delta since this save (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=38658)
+ context.needDelta();
+
+ // clean up indexes on workspace full save
+ // (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=52347)
IndexManager manager = this.indexManager;
if (manager != null) {
manager.cleanUpIndexes();
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SortElementBuilder.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SortElementBuilder.java
index c7fd1e8..0e91e5c 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SortElementBuilder.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SortElementBuilder.java
@@ -932,7 +932,7 @@
this.comparator = comparator;
this.positionsToMap = positionsToMap;
this.scanner = new Scanner(false, false, false, ClassFileConstants.JDK1_3/*sourceLevel*/, null, null, true/*taskCaseSensitive*/);
- this.ast = AST.newAST(AST.LEVEL_2_0);
+ this.ast = AST.newAST(AST.JLS2);
}
/*
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/UserLibraryClasspathContainer.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/UserLibraryClasspathContainer.java
index 338f095..4069ac9 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/UserLibraryClasspathContainer.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/UserLibraryClasspathContainer.java
@@ -27,13 +27,17 @@
this.name= libName;
}
+ private UserLibrary getUserLibrary() {
+ return UserLibraryManager.getUserLibrary(this.name);
+ }
+
/* (non-Javadoc)
* @see org.eclipse.jdt.core.IClasspathContainer#getClasspathEntries()
*/
public IClasspathEntry[] getClasspathEntries() {
- IClasspathContainer library= UserLibraryManager.getUserLibrary(this.name);
+ UserLibrary library= getUserLibrary();
if (library != null) {
- return library.getClasspathEntries();
+ return library.getEntries();
}
return new IClasspathEntry[0];
@@ -50,9 +54,9 @@
* @see org.eclipse.jdt.core.IClasspathContainer#getKind()
*/
public int getKind() {
- IClasspathContainer library= UserLibraryManager.getUserLibrary(this.name);
- if (library != null) {
- return library.getKind();
+ UserLibrary library= getUserLibrary();
+ if (library != null && library.isSystemLibrary()) {
+ return K_SYSTEM;
}
return K_APPLICATION;
}
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/UserLibraryClasspathContainerInitializer.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/UserLibraryClasspathContainerInitializer.java
index f4f7daa..2920dcb 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/UserLibraryClasspathContainerInitializer.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/UserLibraryClasspathContainerInitializer.java
@@ -29,9 +29,10 @@
if (isUserLibraryContainer(containerPath)) {
String userLibName= containerPath.segment(1);
- IClasspathContainer library = UserLibraryManager.getUserLibrary(userLibName);
- if (library != null) {
- JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { project }, new IClasspathContainer[] { library }, null);
+ UserLibrary entries= UserLibraryManager.getUserLibrary(userLibName);
+ if (entries != null) {
+ UserLibraryClasspathContainer container= new UserLibraryClasspathContainer(userLibName);
+ JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { project }, new IClasspathContainer[] { container }, null);
}
}
}
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/UserLibraryManager.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/UserLibraryManager.java
index 31f9b97..ce58629 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/UserLibraryManager.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/UserLibraryManager.java
@@ -80,8 +80,8 @@
* @param name The name of the library
* @return The library registered for the given name or <code>null</code>.
*/
- public static IClasspathContainer getUserLibrary(String name) {
- return (IClasspathContainer) getLibraryMap().get(name);
+ public static UserLibrary getUserLibrary(String name) {
+ return (UserLibrary) getLibraryMap().get(name);
}
/**
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CommentRecorderParser.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CommentRecorderParser.java
index b1a37c0..2c8414e 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CommentRecorderParser.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CommentRecorderParser.java
@@ -166,15 +166,14 @@
// if the source at <position> is immediately followed by a line comment, then
// flush this comment and shift <position> to the comment end.
if (validCount > 0){
- int immediateCommentEnd = -this.scanner.commentStops[index+1]; //non-javadoc comment end positions are negative
- if (immediateCommentEnd > 0){ // only tolerating non-javadoc comments
+ int immediateCommentEnd = 0;
+ while (index<lastCommentIndex && (immediateCommentEnd = -this.scanner.commentStops[index+1]) > 0){ // only tolerating non-javadoc comments (non-javadoc comment end positions are negative)
// is there any line break until the end of the immediate comment ? (thus only tolerating line comment)
immediateCommentEnd--; // comment end in one char too far
- if (this.scanner.getLineNumber(position) == this.scanner.getLineNumber(immediateCommentEnd)){
- position = immediateCommentEnd;
- validCount--; // flush this comment
- index++;
- }
+ if (this.scanner.getLineNumber(position) != this.scanner.getLineNumber(immediateCommentEnd)) break;
+ position = immediateCommentEnd;
+ validCount--; // flush this comment
+ index++;
}
}
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Util.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Util.java
index 5d53ec8..9596032 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Util.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Util.java
@@ -119,24 +119,24 @@
// for compatibility with MessageFormat which eliminates double quotes in original message
char[] messageWithNoDoubleQuotes =
CharOperation.replace(message.toCharArray(), DOUBLE_QUOTES, SINGLE_QUOTE);
- message = new String(messageWithNoDoubleQuotes);
- if (bindings == null) return message;
-
- int length = message.length();
- int start = -1;
+
+ if (bindings == null) return new String(messageWithNoDoubleQuotes);
+
+ int length = messageWithNoDoubleQuotes.length;
+ int start = 0;
int end = length;
StringBuffer output = null;
while (true) {
- if ((end = message.indexOf('{', start)) > -1) {
- if (output == null) output = new StringBuffer(80);
- output.append(message.substring(start + 1, end));
- if ((start = message.indexOf('}', end)) > -1) {
+ if ((end = CharOperation.indexOf('{', messageWithNoDoubleQuotes, start)) > -1) {
+ if (output == null) output = new StringBuffer(length+bindings.length*20);
+ output.append(messageWithNoDoubleQuotes, start, end - start);
+ if ((start = CharOperation.indexOf('}', messageWithNoDoubleQuotes, end + 1)) > -1) {
int index = -1;
+ String argId = new String(messageWithNoDoubleQuotes, end + 1, start - end - 1);
try {
- index = Integer.parseInt(message.substring(end + 1, start));
+ index = Integer.parseInt(argId);
output.append(bindings[index]);
} catch (NumberFormatException nfe) { // could be nested message ID {compiler.name}
- String argId = message.substring(end + 1, start);
boolean done = false;
if (!id.equals(argId)) {
String argMessage = null;
@@ -148,17 +148,18 @@
// unable to bind argument, ignore (will leave argument in)
}
}
- if (!done) output.append(message.substring(end + 1, start + 1));
+ if (!done) output.append(messageWithNoDoubleQuotes, end + 1, start - end);
} catch (ArrayIndexOutOfBoundsException e) {
output.append("{missing " + Integer.toString(index) + "}"); //$NON-NLS-2$ //$NON-NLS-1$
}
+ start++;
} else {
- output.append(message.substring(end, length));
+ output.append(messageWithNoDoubleQuotes, end, length);
break;
}
} else {
- if (output == null) return message;
- output.append(message.substring(start + 1, length));
+ if (output == null) return new String(messageWithNoDoubleQuotes);
+ output.append(messageWithNoDoubleQuotes, start, length - start);
break;
}
}
diff --git a/org.eclipse.jdt.core/plugin.properties b/org.eclipse.jdt.core/plugin.properties
index 579f43b..56951a2 100644
--- a/org.eclipse.jdt.core/plugin.properties
+++ b/org.eclipse.jdt.core/plugin.properties
@@ -18,4 +18,5 @@
classpathVariableInitializersName=Classpath Variable Initializers
classpathContainerInitializersName=Classpath Container Initializers
codeFormattersName=Source Code Formatters
-javaTaskName=Java Task
\ No newline at end of file
+javaTaskName=Java Task
+javaPropertiesName=Java Properties File
\ No newline at end of file
diff --git a/org.eclipse.jdt.core/plugin.xml b/org.eclipse.jdt.core/plugin.xml
index e20aeab..73e6564 100644
--- a/org.eclipse.jdt.core/plugin.xml
+++ b/org.eclipse.jdt.core/plugin.xml
@@ -87,13 +87,9 @@
</builder>
</extension>
-
<!-- =================================================================================== -->
-<!-- Extension: Java Markers -->
+<!-- Extension: Java Problem -->
<!-- =================================================================================== -->
-
-<!-- Java problems -->
-
<extension id="problem" point="org.eclipse.core.resources.markers" name="%javaProblemName">
<super type="org.eclipse.core.resources.problemmarker"/>
<super type="org.eclipse.core.resources.textmarker"/>
@@ -103,8 +99,9 @@
<attribute name="arguments"/>
</extension>
-<!-- Java buildpath problems -->
-
+<!-- =================================================================================== -->
+<!-- Extension: Java Buildpath Problem -->
+<!-- =================================================================================== -->
<extension id="buildpath_problem" point="org.eclipse.core.resources.markers" name="%buildPathProblemName">
<super type="org.eclipse.core.resources.problemmarker"/>
<super type="org.eclipse.core.resources.textmarker"/>
@@ -114,8 +111,9 @@
<attribute name="arguments"/>
</extension>
-<!-- Java transient problems -->
-
+<!-- =================================================================================== -->
+<!-- Extension: Java Transient Problem -->
+<!-- =================================================================================== -->
<extension id="transient_problem" point="org.eclipse.core.resources.markers" name="%transientJavaProblemName">
<super type="org.eclipse.core.resources.textmarker"/>
<persistent value="false"/>
@@ -124,8 +122,9 @@
<attribute name="arguments"/>
</extension>
-<!-- Java tasks -->
-
+<!-- =================================================================================== -->
+<!-- Extension: Java Task -->
+<!-- =================================================================================== -->
<extension id="task" name="%javaTaskName" point="org.eclipse.core.resources.markers">
<super type="org.eclipse.core.resources.taskmarker"/>
<persistent value="true"/>
@@ -141,26 +140,56 @@
</extraClasspathEntry>
</extension>
-<!-- Tasks -->
+<!-- =================================================================================== -->
+<!-- Extension: Javac Ant Task -->
+<!-- =================================================================================== -->
<extension point="org.eclipse.ant.core.antTasks">
- <antTask
- name="eclipse.checkDebugAttributes"
- class="org.eclipse.jdt.core.CheckDebugAttributes"
- library="jdtCompilerAdapter.jar">
- </antTask>
+ <antTask
+ name="eclipse.checkDebugAttributes"
+ class="org.eclipse.jdt.core.CheckDebugAttributes"
+ library="jdtCompilerAdapter.jar">
+ </antTask>
</extension>
<!-- =================================================================================== -->
-<!-- Extension: Java file types -->
+<!-- Extension: User Library Container -->
+<!-- =================================================================================== -->
+<extension
+ point="org.eclipse.jdt.core.classpathContainerInitializer">
+ <classpathContainerInitializer
+ class="org.eclipse.jdt.internal.core.UserLibraryClasspathContainerInitializer"
+ id="org.eclipse.jdt.USER_LIBRARY">
+ </classpathContainerInitializer>
+ </extension>
+
+<!-- =================================================================================== -->
+<!-- Extension: Java File Types -->
<!-- =================================================================================== -->
<extension point="org.eclipse.team.core.fileTypes">
- <fileTypes extension="java" type="text"/>
- <fileTypes extension="classpath" type="text"/>
- <fileTypes extension="properties" type="text"/>
- <fileTypes extension="class" type="binary"/>
- <fileTypes extension="jar" type="binary"/>
- <fileTypes extension="jardesc" type="text"/>
- <fileTypes extension="zip" type="binary"/>
+ <fileTypes extension="java" type="text"/>
+ <fileTypes extension="classpath" type="text"/>
+ <fileTypes extension="properties" type="text"/>
+ <fileTypes extension="class" type="binary"/>
+ <fileTypes extension="jar" type="binary"/>
+ <fileTypes extension="jardesc" type="text"/>
+ <fileTypes extension="zip" type="binary"/>
</extension>
+
+<!-- =================================================================================== -->
+<!-- Extension: Java Content Types -->
+<!-- =================================================================================== -->
+<extension point="org.eclipse.core.runtime.contentTypes">
+ <!-- declares a content type for Java Properties files -->
+ <content-type id="javaProperties" name="%javaPropertiesName"
+ base-type="org.eclipse.core.runtime.text"
+ priority="high"
+ file-extensions="properties"
+ default-charset="ISO-8859-1"/>
+ <!-- Associates .classpath to the XML content type -->
+ <file-association
+ content-type="org.eclipse.core.runtime.xml"
+ file-names=".classpath"/>
+</extension>
+
</plugin>
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/FieldDeclarationMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/FieldDeclarationMatch.java
index d20c332..a44a317 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/FieldDeclarationMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/FieldDeclarationMatch.java
@@ -16,6 +16,9 @@
/**
* A Java search match that represents a field declaration.
* The element is an <code>IField</code>.
+ * <p>
+ * This class is intended to be instantiated and subclassed by clients.
+ * </p>
*
* @since 3.0
*/
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/FieldReferenceMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/FieldReferenceMatch.java
index 0a1b98a..4868aff 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/FieldReferenceMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/FieldReferenceMatch.java
@@ -16,6 +16,9 @@
/**
* A Java search match that represents a field reference.
* The element is the inner-most enclosing member that references this field.
+ * <p>
+ * This class is intended to be instantiated and subclassed by clients.
+ * </p>
*
* @since 3.0
*/
@@ -48,7 +51,7 @@
/**
* @see org.eclipse.jdt.core.search.SearchMatch#isInsideDocComment()
*/
- public boolean isInsideDocComment() {
+ public final boolean isInsideDocComment() {
return this.insideDocComment;
}
@@ -58,7 +61,7 @@
*
* @return whether the field reference is a read access to the field.
*/
- public boolean isReadAccess() {
+ public final boolean isReadAccess() {
return this.isReadAccess;
}
@@ -68,7 +71,7 @@
*
* @return whether the field reference is a write access to the field.
*/
- public boolean isWriteAccess() {
+ public final boolean isWriteAccess() {
return this.isWriteAccess;
}
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/LocalVariableDeclarationMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/LocalVariableDeclarationMatch.java
index dfe410c..ea42f42 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/LocalVariableDeclarationMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/LocalVariableDeclarationMatch.java
@@ -16,6 +16,9 @@
/**
* A Java search match that represents a local variable declaration.
* The element is an <code>ILocalVariable</code>.
+ * <p>
+ * This class is intended to be instantiated and subclassed by clients.
+ * </p>
*
* @since 3.0
*/
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/LocalVariableReferenceMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/LocalVariableReferenceMatch.java
index f925431..34cc7c3 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/LocalVariableReferenceMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/LocalVariableReferenceMatch.java
@@ -16,6 +16,9 @@
/**
* A Java search match that represents a local variable reference.
* The element is the inner-most enclosing member that references this local variable.
+ * <p>
+ * This class is intended to be instantiated and subclassed by clients.
+ * </p>
*
* @since 3.0
*/
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/MethodDeclarationMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/MethodDeclarationMatch.java
index 1c08aa0..2bb5438 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/MethodDeclarationMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/MethodDeclarationMatch.java
@@ -16,6 +16,9 @@
/**
* A Java search match that represents a method declaration.
* The element is an <code>IMethod</code>.
+ * <p>
+ * This class is intended to be instantiated and subclassed by clients.
+ * </p>
*
* @since 3.0
*/
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/MethodReferenceMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/MethodReferenceMatch.java
index b1eb613..49973ee 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/MethodReferenceMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/MethodReferenceMatch.java
@@ -16,6 +16,9 @@
/**
* A Java search match that represents a method reference.
* The element is the inner-most enclosing member that references this method.
+ * <p>
+ * This class is intended to be instantiated and subclassed by clients.
+ * </p>
*
* @since 3.0
*/
@@ -42,7 +45,7 @@
/**
* @see org.eclipse.jdt.core.search.SearchMatch#isInsideDocComment()
*/
- public boolean isInsideDocComment() {
+ public final boolean isInsideDocComment() {
return this.insideDocComment;
}
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/PackageDeclarationMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/PackageDeclarationMatch.java
index 967a445..d94cfca 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/PackageDeclarationMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/PackageDeclarationMatch.java
@@ -16,6 +16,9 @@
/**
* A Java search match that represents a package declaration.
* The element is an <code>IPackageFragment</code>.
+ * <p>
+ * This class is intended to be instantiated and subclassed by clients.
+ * </p>
*
* @since 3.0
*/
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/PackageReferenceMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/PackageReferenceMatch.java
index 43da758..5379917 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/PackageReferenceMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/PackageReferenceMatch.java
@@ -15,7 +15,10 @@
/**
* A Java search match that represents a package reference.
- * The element is the inner-most enclosing member that references this package.
+ * The element is the inner-most enclosing member that references this package. * <p>
+ * This class is intended to be instantiated and subclassed by clients.
+ * </p>
+
*
* @since 3.0
*/
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchDocument.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchDocument.java
index b5ec169..fab8778 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchDocument.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchDocument.java
@@ -10,78 +10,109 @@
*******************************************************************************/
package org.eclipse.jdt.core.search;
+import org.eclipse.jdt.internal.core.search.indexing.InternalSearchDocument;
+
/**
* A search document encapsulates a content to be either indexed or searched in.
* A search particpant creates a search document.
+ * <p>
+ * This class is intended to be subclassed by clients.
+ * </p>
*
* @since 3.0
*/
-public class SearchDocument {
- protected String documentPath;
- protected SearchParticipant participant;
+public abstract class SearchDocument extends InternalSearchDocument {
+ private String documentPath;
+ private SearchParticipant participant;
/**
- * Internal field: do not use
- */
- public org.eclipse.jdt.internal.core.index.Index index;
-
- /**
- * Creates a new search document.
+ * Creates a new search document. The given document path is a string that uniquely identifies the document.
+ * Most of the time it is a workspace-relative path, but it can also be a file system path, or a path inside a zip file.
*
- * @param documentPath the path to the document on disk or <code>null</code> if not provided
+ * @param documentPath the path to the document,
+ * or <code>null</code> if none
* @param participant the participant that creates the search document
*/
- public SearchDocument(String documentPath, SearchParticipant participant) {
+ protected SearchDocument(String documentPath, SearchParticipant participant) {
this.documentPath = documentPath;
this.participant = participant;
}
/**
- * Returns the contents of this document.
- * Contents may be different from actual resource at corresponding document path,
- * in case of preprocessing.
+ * Adds the given index entry (category and key) coming from this
+ * document to the index. This method must be called from
+ * {@link SearchParticipant#indexDocument(SearchDocument document, org.eclipse.core.runtime.IPath indexPath).
*
- * @return the contents of this document.
+ * @param category the category of the index entry
+ * @param key the key of the index entry
*/
- public byte[] getByteContents() {
- return null;
+ public void addIndexEntry(char[] category, char[] key) {
+ super.addIndexEntry(category, key);
}
-
+
/**
* Returns the contents of this document.
* Contents may be different from actual resource at corresponding document path,
* in case of preprocessing.
+ * <p>
+ * This method must be implemented in subclasses.
+ * </p>
*
- * @return the contents of this document.
+ * @return the contents of this document,
+ * or <code>null</code> if none
*/
- public char[] getCharContents() {
- return null;
- }
+ public abstract byte[] getByteContents();
/**
- * Returns the encoding for this document
+ * Returns the contents of this document.
+ * Contents may be different from actual resource at corresponding document
+ * path due to preprocessing.
+ * <p>
+ * This method must be implemented in subclasses.
+ * </p>
*
- * @return the encoding for this document
+ * @return the contents of this document,
+ * or <code>null</code> if none
*/
- public String getEncoding() {
- return null;
- }
+ public abstract char[] getCharContents();
/**
- * Returns the participant that created this document
+ * Returns the encoding for this document.
+ * <p>
+ * This method must be implemented in subclasses.
+ * </p>
+ *
+ * @return the encoding for this document,
+ * or <code>null</code> if none
+ */
+ public abstract String getEncoding();
+
+ /**
+ * Returns the participant that created this document.
*
* @return the participant that created this document
*/
- public SearchParticipant getParticipant() {
+ public final SearchParticipant getParticipant() {
return this.participant;
}
/**
- * Returns the path to the original document to publicly mention in index or search results.
+ * Returns the path to the original document to publicly mention in index
+ * or search results. This path is a string that uniquely identifies the document.
+ * Most of the time it is a workspace-relative path, but it can also be a file system path,
+ * or a path inside a zip file.
*
* @return the path to the document
*/
- public String getPath() {
+ public final String getPath() {
return this.documentPath;
}
+ /**
+ * Removes all index entries from the index for the given document.
+ * This method must be called from
+ * {@link SearchParticipant#indexDocument(SearchDocument document, org.eclipse.core.runtime.IPath indexPath).
+ */
+ public void removeAllIndexEntries() {
+ super.removeAllIndexEntries();
+ }
}
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchMatch.java
index 605582a..4cf1d82 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchMatch.java
@@ -21,6 +21,9 @@
* a compile-time problem prevents the search engine from completely resolving
* the match.
* </p>
+ * <p>
+ * This class is intended to be instantiated and subclassed by clients.
+ * </p>
*
* @see SearchEngine#search(SearchPattern, SearchParticipant[], IJavaSearchScope, SearchRequestor, org.eclipse.core.runtime.IProgressMonitor)
* @since 3.0
@@ -50,7 +53,8 @@
/**
* Creates a new search match.
*
- * @param element the element that encloses or corresponds to the match
+ * @param element the element that encloses or corresponds to the match,
+ * or <code>null</code> if none
* @param accuracy one of A_ACCURATE or A_INACCURATE
* @param offset the offset the match starts at, or -1 if unknown
* @param length the length of the match, or -1 if unknown
@@ -77,16 +81,16 @@
*
* @return one of {@link #A_ACCURATE} or {@link #A_INACCURATE}
*/
- public int getAccuracy() {
+ public final int getAccuracy() {
return this.accuracy;
}
/**
* Returns the element of this search match.
*
- * @return the element of the search match
+ * @return the element of the search match, or <code>null</code> if none
*/
- public Object getElement() {
+ public final Object getElement() {
return this.element;
}
@@ -95,7 +99,7 @@
*
* @return the length of this search match, or -1 if unknown
*/
- public int getLength() {
+ public final int getLength() {
return this.length;
}
@@ -104,7 +108,7 @@
*
* @return the offset of this search match, or -1 if unknown
*/
- public int getOffset() {
+ public final int getOffset() {
return this.offset;
}
@@ -113,7 +117,7 @@
*
* @return the participant which issued this search match
*/
- public SearchParticipant getParticipant() {
+ public final SearchParticipant getParticipant() {
return this.participant;
}
@@ -122,7 +126,7 @@
*
* @return the resource of the match, or <code>null</code> if none
*/
- public IResource getResource() {
+ public final IResource getResource() {
return this.resource;
}
@@ -134,6 +138,7 @@
* comment, and <code>false</code> otherwise
* @deprecated Use {@link #isInsideDocComment()} instead.
*/
+ // TODO (jerome) - remove this method before M9
public boolean insideDocComment() {
return isInsideDocComment();
}
@@ -145,6 +150,7 @@
* @return <code>true</code> if this search match is inside a Java doc
* comment, and <code>false</code> otherwise
*/
+ // TODO (jerome) - it would be better to provide a private field and a public final get/set methods
public boolean isInsideDocComment() {
// default is outside a doc comment
return false;
@@ -155,7 +161,7 @@
*
* @param length the length of this match, or -1 if unknown
*/
- public void setLength(int length) {
+ public final void setLength(int length) {
this.length = length;
}
@@ -164,7 +170,7 @@
*
* @param offset the offset of this match, or -1 if unknown
*/
- public void setOffset(int offset) {
+ public final void setOffset(int offset) {
this.offset = offset;
}
}
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchParticipant.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchParticipant.java
index 4f1b6b2..9d19602 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchParticipant.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchParticipant.java
@@ -11,87 +11,176 @@
package org.eclipse.jdt.core.search;
import org.eclipse.core.runtime.*;
-import org.eclipse.core.resources.IFile;
import org.eclipse.jdt.internal.core.JavaModelManager;
/**
- * A search participant describes a particular extension to a generic search mechanism, permitting
- * combined search actions which will involve all required participants.
+ * A search participant describes a particular extension to a generic search
+ * mechanism, permitting combined search actions which will involve all required
+ * participants.
+ * <p>
+ * A search participant is involved in the indexing phase and in the search phase.
+ * The indexing phase consists in taking one or more search documents, parse them, and
+ * add index entries in an index chosen by the participant. An index is identified by a
+ * path on disk.
+ * The search phase consists in selecting the indexes corresponding to a search pattern
+ * and a search scope, from these indexes the search infrastructure extracts the document paths
+ * that match the search pattern asking the search participant for the corresponding document,
+ * finally the search participant is asked to locate the matches precisely in these search documents.
+ * </p>
+ * <p>
+ * This class is intended to be subclassed by clients. During the indexing phase,
+ * a subclass will be called with the following requests in order:
+ * <ul>
+ * <li>{@link #scheduleDocumentIndexing(SearchDocument, IPath)}</li>
+ * <li>{@link #indexDocument(SearchDocument, IPath)}</li>
+ * </ul>
+ * During the search phase, a subclass will be called with the following requests in order:
+ * <ul>
+ * <li>{@link #selectIndexes(SearchPattern, IJavaSearchScope)}</li>
+ * <li>one or more {@link #getDocument(String)}</li>
+ * <li>{@link #locateMatches(SearchDocument[], SearchPattern, IJavaSearchScope, SearchRequestor, IProgressMonitor)}</li>
+ * </ul>
+ * </p>
*
- * A search scope defines which participants are involved.
- *
- * A search participant is responsible for holding index files, and selecting the appropriate ones to feed to
- * index queries. It also can map a document path to an actual document (note that documents could live outside
- * the workspace or not exist yet, and thus aren't just resources).
* @since 3.0
*/
public abstract class SearchParticipant {
- public static final SearchParticipant[] NO_PARTICIPANT = {};
-
- // A service provided for participants. Its called from indexDocument(SearchDocument document, IPath indexPath)
- public static void addIndexEntry(char[] category, char[] key, SearchDocument document) {
- if (document.index != null)
- document.index.addIndexEntry(category, key, document);
+ /**
+ * Creates a new search participant.
+ */
+ protected SearchParticipant() {
+ // do nothing
}
- // A service provided for participants. Its called from indexDocument(SearchDocument document, IPath indexPath)
- public static void removeAllIndexEntries(SearchDocument document) {
- if (document.index != null)
- document.index.remove(document.getPath());
+
+ /**
+ * Notification that this participant's help is needed in a search.
+ * <p>
+ * This method should be re-implemented in subclasses that need to do something
+ * when the participant is needed in a search.
+ * </p>
+ */
+ public void beginSearching() {
+ // do nothing
}
/**
- * Intermediate notification sent when a given participant is getting involved.
+ * Notification that this participant's help is no longer needed.
+ * <p>
+ * This method should be re-implemented in subclasses that need to do something
+ * when the participant is no longer needed in a search.
+ * </p>
*/
- public abstract void beginSearching();
+ public void doneSearching() {
+ // do nothing
+ }
/**
- * Intermediate notification sent when a given participant is finished to be involved.
+ * Returns a displayable name of this search participant.
+ * <p>
+ * This method should be re-implemented in subclasses that need to
+ * display a meaningfull name.
+ * </p>
+ *
+ * @return the displayable name of this search participant
*/
- public abstract void doneSearching();
+ public String getDescription() {
+ return "Search participant"; //$NON-NLS-1$
+ }
/**
- * Returns a displayable name of this search participant. e.g. "Java".
- */
- public abstract String getDescription();
-
- /**
- * Bind a file to an actual document.
- */
- public abstract SearchDocument getDocument(IFile file);
-
- /**
- * Bind a document path to an actual document. A document path is interpreted by a participant.
+ * Returns a search document for the given path.
+ * The given document path is a string that uniquely identifies the document.
+ * Most of the time it is a workspace-relative path, but it can also be a file system path, or a path inside a zip file.
+ * <p>
+ * Implementors of this method can either create an instance of their own subclass of
+ * {@link SearchDocument} or return an existing instance of such a subclass.
+ * </p>
+ *
+ * @param documentPath the path of the document.
+ * @return a search document
*/
public abstract SearchDocument getDocument(String documentPath);
/**
- * Index the given document.
- * Implementation should call addIndexEntry(...)
- * If delegating to another participant, it should use the original index location (and not the delegatee's one)
- * TODO (jerome) improve spec
+ * Indexes the given document in the given index. A search participant
+ * asked to index a document should parse it and call
+ * {@link #addIndexEntry(char[], char[], SearchDocument)} as many times as
+ * needed to add index entries to the index. If delegating to another
+ * participant, it should use the original index location (and not the
+ * delegatee's one).
+ * <p>
+ * The given index location must represent a path in the file system to a file that
+ * either already exists or is going to be created. If it exists, it must be an index file,
+ * otherwise its data might be overwritten.
+ * </p><p>
+ * Clients are not expected to call this method.
+ * </p>
+ *
+ * @param document the document to index
+ * @param indexLocation the location in the file system to the index
*/
- public abstract void indexDocument(SearchDocument document, IPath indexPath);
+ public abstract void indexDocument(SearchDocument document, IPath indexLocation);
/**
- * Locate the matches in the given documents and report them using the search requestor.
- * Note: permits combined match locators (e.g. jsp match locator can preprocess jsp unit contents and feed them
- * to Java match locator asking for virtual matches by contributing document implementations which do the conversion).
- * It is assumed that virtual matches are rearranged by requestor for adapting line/source positions before submitting
- * final results so the provided searchRequestor should intercept virtual matches and do appropriate conversions.
+ * Locates the matches in the given documents using the given search pattern
+ * and search scope, and reports them to the givenn search requestor. This
+ * method is called by the search engine once it has search documents
+ * matching the given pattern in the given search scope.
+ * <p>
+ * Note that a participant (e.g. a JSP participant) can pre-process the contents of the given documents,
+ * create its own documents whose contents are Java compilation units and delegate the match location
+ * to the default participant (see {@link SearchEngine#getDefaultSearchParticipant()}). Passing its own
+ * {@link SearchRequestor} this particpant can then map the match positions back to the original
+ * contents, create its own matches and report them to the original requestor.
+ * </p><p>
+ * Implementors of this method should check the progress monitor
+ * for cancelation when it is safe and appropriate to do so. The cancelation
+ * request should be propagated to the caller by throwing
+ * <code>OperationCanceledException</code>.
+ * </p>
+ *
+ * @param documents the documents to locate matches in
+ * @param pattern the search pattern to use when locating matches
+ * @param scope the scope to limit the search to
+ * @param requestor the requestor to report matches to
+ * @param monitor the progress monitor to report progress to,
+ * or <code>null</code> if no progress should be reported
+ * @throws CoreException if the requestor had problem accepting one of the matches
*/
- public abstract void locateMatches(SearchDocument[] indexMatches, SearchPattern pattern, IJavaSearchScope scope, SearchRequestor requestor, IProgressMonitor monitor) throws CoreException;
+ public abstract void locateMatches(SearchDocument[] documents, SearchPattern pattern, IJavaSearchScope scope, SearchRequestor requestor, IProgressMonitor monitor) throws CoreException;
/**
* Schedules the indexing of the given document.
- * Once the document is ready to be indexed, indexDocument(document, indexPath) is called.
+ * Once the document is ready to be indexed,
+ * {@link #indexDocument(SearchDocument, IPath) indexDocument(document, indexPath)}
+ * will be called in a different thread than the caller's thread.
+ * <p>
+ * The given index location must represent a path in the file system to a file that
+ * either already exists or is going to be created. If it exists, it must be an index file,
+ * otherwise its data might be overwritten.
+ * </p>
+ *
+ * @param document the document to index
+ * @param indexLocation the location on the file system of the index
*/
- public void scheduleDocumentIndexing(SearchDocument document, IPath indexPath) {
- JavaModelManager.getJavaModelManager().getIndexManager().scheduleDocumentIndexing(document, indexPath, this);
+ public final void scheduleDocumentIndexing(SearchDocument document, IPath indexLocation) {
+ JavaModelManager.getJavaModelManager().getIndexManager().scheduleDocumentIndexing(document, indexLocation, this);
}
/**
- * Returns the collection of index paths to consider when performing a given search query in a given scope.
+ * Returns the collection of index locations to consider when performing the
+ * given search query in the given scope. The search engine calls this
+ * method before locating matches.
+ * <p>
+ * An index location represents a path in the file system to a file that holds index information.
+ * </p><p>
+ * Clients are not expected to call this method.
+ * </p>
+ *
+ * @param query the search pattern to consider
+ * @param scope the given search scope
+ * @return the collection of index paths to consider
*/
public abstract IPath[] selectIndexes(SearchPattern query, IJavaSearchScope scope);
}
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchRequestor.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchRequestor.java
index b7e514b..7a6ebe3 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchRequestor.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchRequestor.java
@@ -54,8 +54,8 @@
/**
* Notification sent after having completed the search action.
- * Typically, this would tell a search requestor collector that no more results should be expected in this
- * iteration.
+ * Typically, this would tell a search requestor collector that no more
+ * results will be forthcomping in this search.
* <p>
* The default implementation of this method does nothing. Subclasses
* may override.
@@ -66,7 +66,7 @@
}
/**
- * Intermediate notification sent when a given participant is starting to
+ * Intermediate notification sent when the given participant starts to
* contribute.
* <p>
* The default implementation of this method does nothing. Subclasses
@@ -80,7 +80,7 @@
}
/**
- * Intermediate notification sent when a given participant is finished
+ * Intermediate notification sent when the given participant is finished
* contributing.
* <p>
* The default implementation of this method does nothing. Subclasses
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/TypeDeclarationMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/TypeDeclarationMatch.java
index b2042d9..0b69db4 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/TypeDeclarationMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/TypeDeclarationMatch.java
@@ -16,6 +16,9 @@
/**
* A Java search match that represents a type declaration.
* The element is an <code>IType</code>.
+ * <p>
+ * This class is intended to be instantiated and subclassed by clients.
+ * </p>
*
* @since 3.0
*/
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/TypeReferenceMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/TypeReferenceMatch.java
index 91a1c6e..ced1bb0 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/TypeReferenceMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/TypeReferenceMatch.java
@@ -16,6 +16,9 @@
/**
* A Java search match that represents a type reference.
* The element is the inner-most enclosing member that references this type.
+ * <p>
+ * This class is intended to be instantiated and subclassed by clients.
+ * </p>
*
* @since 3.0
*/
@@ -42,7 +45,7 @@
/**
* @see org.eclipse.jdt.core.search.SearchMatch#isInsideDocComment()
*/
- public boolean isInsideDocComment() {
+ public final boolean isInsideDocComment() {
return this.insideDocComment;
}
}
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/index/Index.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/index/Index.java
index ca7e8d8..44a4f5b 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/index/Index.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/index/Index.java
@@ -17,6 +17,7 @@
import org.eclipse.jdt.core.search.*;
import org.eclipse.jdt.internal.compiler.util.HashtableOfObject;
import org.eclipse.jdt.internal.core.util.*;
+import org.eclipse.jdt.internal.core.search.indexing.InternalSearchDocument;
import org.eclipse.jdt.internal.core.search.indexing.ReadWriteMonitor;
/**
@@ -94,7 +95,7 @@
this.diskIndex = new DiskIndex(fileName);
this.diskIndex.initialize(reuseExistingFile);
}
-public void addIndexEntry(char[] category, char[] key, SearchDocument document) {
+public void addIndexEntry(char[] category, char[] key, InternalSearchDocument document) {
this.memoryIndex.addIndexEntry(category, key, document);
}
public File getIndexFile() {
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/index/MemoryIndex.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/index/MemoryIndex.java
index 464b1d3..ca44041 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/index/MemoryIndex.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/index/MemoryIndex.java
@@ -11,6 +11,7 @@
package org.eclipse.jdt.internal.core.index;
import org.eclipse.jdt.core.search.*;
+import org.eclipse.jdt.internal.core.search.indexing.InternalSearchDocument;
import org.eclipse.jdt.internal.core.util.*;
import org.eclipse.jdt.internal.compiler.util.HashtableOfObject;
@@ -39,7 +40,7 @@
results.add(paths[i]);
}
}
-void addIndexEntry(char[] category, char[] key, SearchDocument document) {
+void addIndexEntry(char[] category, char[] key, InternalSearchDocument document) {
// assumed a document was removed before its reindexed
String documentName = document.getPath();
HashtableOfObject referenceTable = (HashtableOfObject) this.docsToReferences.get(documentName);
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/JavaSearchDocument.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/JavaSearchDocument.java
index 964e646..3d23b40 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/JavaSearchDocument.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/JavaSearchDocument.java
@@ -82,16 +82,16 @@
}
private IFile getFile() {
if (this.file == null)
- this.file = (IFile) ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(this.documentPath));
+ this.file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(getPath()));
return this.file;
}
private IPath getLocation() {
IFile resource = getFile();
if (resource != null)
return resource.getLocation();
- return new Path(this.documentPath); // external file
+ return new Path(getPath()); // external file
}
public String toString() {
- return "SearchDocument for " + this.documentPath; //$NON-NLS-1$
+ return "SearchDocument for " + getPath(); //$NON-NLS-1$
}
}
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/JavaSearchParticipant.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/JavaSearchParticipant.java
index 3fc6a9e..e0461a4 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/JavaSearchParticipant.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/JavaSearchParticipant.java
@@ -11,7 +11,6 @@
package org.eclipse.jdt.internal.core.search;
import org.eclipse.core.runtime.*;
-import org.eclipse.core.resources.IFile;
import org.eclipse.jdt.core.search.*;
import org.eclipse.jdt.internal.core.search.indexing.BinaryIndexer;
import org.eclipse.jdt.internal.core.search.indexing.SourceIndexer;
@@ -35,6 +34,7 @@
* @see org.eclipse.jdt.core.search.SearchParticipant#beginSearching()
*/
public void beginSearching() {
+ super.beginSearching();
this.indexSelector = null;
}
@@ -43,6 +43,7 @@
*/
public void doneSearching() {
this.indexSelector = null;
+ super.doneSearching();
}
/* (non-Javadoc)
@@ -53,13 +54,6 @@
}
/* (non-Javadoc)
- * @see org.eclipse.jdt.core.search.SearchParticipant#getDocument(IFile)
- */
- public SearchDocument getDocument(IFile file) {
- return new JavaSearchDocument(file, this);
- }
-
- /* (non-Javadoc)
* @see org.eclipse.jdt.core.search.SearchParticipant#getDocument(String)
*/
public SearchDocument getDocument(String documentPath) {
@@ -71,7 +65,7 @@
*/
public void indexDocument(SearchDocument document, IPath indexPath) {
// TODO must verify that the document + indexPath match, when this is not called from scheduleDocumentIndexing
- removeAllIndexEntries(document); // in case the document was already indexed
+ document.removeAllIndexEntries(); // in case the document was already indexed
String documentPath = document.getPath();
if (org.eclipse.jdt.internal.compiler.util.Util.isJavaFileName(documentPath)) {
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/AbstractIndexer.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/AbstractIndexer.java
index 55f45c7..b2bec59 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/AbstractIndexer.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/AbstractIndexer.java
@@ -12,7 +12,6 @@
import org.eclipse.jdt.core.compiler.CharOperation;
import org.eclipse.jdt.core.search.SearchDocument;
-import org.eclipse.jdt.core.search.SearchParticipant;
import org.eclipse.jdt.internal.core.search.matching.*;
public abstract class AbstractIndexer implements IIndexConstants {
@@ -64,7 +63,7 @@
addNameReference(fieldName);
}
protected void addIndexEntry(char[] category, char[] key) {
- SearchParticipant.addIndexEntry(category, key, this.document);
+ this.document.addIndexEntry(category, key);
}
public void addInterfaceDeclaration(int modifiers, char[] packageName, char[] name, char[][] enclosingTypeNames, char[][] superinterfaces) {
addIndexEntry(TYPE_DECL, TypeDeclarationPattern.createIndexKey(name, packageName, enclosingTypeNames, INTERFACE_SUFFIX));
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexAllProject.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexAllProject.java
index f49df91..6faae93 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexAllProject.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexAllProject.java
@@ -27,7 +27,6 @@
import org.eclipse.jdt.internal.core.ClasspathEntry;
import org.eclipse.jdt.internal.core.JavaProject;
import org.eclipse.jdt.internal.core.index.Index;
-import org.eclipse.jdt.internal.core.search.JavaSearchDocument;
import org.eclipse.jdt.internal.core.search.processing.JobManager;
import org.eclipse.jdt.internal.core.util.SimpleLookupTable;
import org.eclipse.jdt.internal.core.util.Util;
@@ -112,7 +111,7 @@
if (exclusionPatterns != null || inclusionPatterns != null)
if (Util.isExcluded(file, inclusionPatterns, exclusionPatterns))
return false;
- indexedFileNames.put(new JavaSearchDocument(file, null).getPath(), file);
+ indexedFileNames.put(file.getFullPath().toString(), file);
}
return false;
case IResource.FOLDER :
@@ -141,7 +140,7 @@
if (exclusionPatterns != null || inclusionPatterns != null)
if (Util.isExcluded(file, inclusionPatterns, exclusionPatterns))
return false;
- String path = new JavaSearchDocument(file, null).getPath();
+ String path = file.getFullPath().toString();
indexedFileNames.put(path,
indexedFileNames.get(path) == null || indexLastModified < location.toFile().lastModified()
? (Object) file
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexBinaryFolder.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexBinaryFolder.java
index a354246..a110150 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexBinaryFolder.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexBinaryFolder.java
@@ -21,7 +21,6 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.internal.core.index.Index;
-import org.eclipse.jdt.internal.core.search.JavaSearchDocument;
import org.eclipse.jdt.internal.core.search.processing.JobManager;
import org.eclipse.jdt.internal.core.util.SimpleLookupTable;
import org.eclipse.jdt.internal.core.util.Util;
@@ -69,7 +68,7 @@
if (org.eclipse.jdt.internal.compiler.util.Util.isClassFileName(proxy.getName())) {
IFile file = (IFile) proxy.requestResource();
if (file.getLocation() != null)
- indexedFileNames.put(new JavaSearchDocument(file, null).getPath(), file);
+ indexedFileNames.put(file.getFullPath().toString(), file);
}
return false;
}
@@ -90,7 +89,7 @@
IFile file = (IFile) proxy.requestResource();
IPath location = file.getLocation();
if (location != null) {
- String path = new JavaSearchDocument(file, null).getPath();
+ String path = file.getFullPath().toString();
indexedFileNames.put(path,
indexedFileNames.get(path) == null || indexLastModified < location.toFile().lastModified()
? (Object) file
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexManager.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexManager.java
index 10d6919..46e8438 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexManager.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexManager.java
@@ -32,6 +32,9 @@
public class IndexManager extends JobManager implements IIndexConstants {
public SimpleLookupTable indexNames = new SimpleLookupTable();
+ /*
+ * key = an IPath, value = an Index
+ */
private Map indexes = new HashMap(5);
/* need to save ? */
@@ -72,7 +75,7 @@
public void addBinary(IFile resource, IPath indexPath) {
if (JavaCore.getPlugin() == null) return;
SearchParticipant participant = SearchEngine.getDefaultSearchParticipant();
- SearchDocument document = participant.getDocument(resource);
+ SearchDocument document = participant.getDocument(resource.getFullPath().toString());
participant.scheduleDocumentIndexing(document, indexPath);
}
/**
@@ -82,7 +85,7 @@
public void addSource(IFile resource, IPath indexPath) {
if (JavaCore.getPlugin() == null) return;
SearchParticipant participant = SearchEngine.getDefaultSearchParticipant();
- SearchDocument document = participant.getDocument(resource);
+ SearchDocument document = participant.getDocument(resource.getFullPath().toString());
participant.scheduleDocumentIndexing(document, indexPath);
}
/*
@@ -231,10 +234,10 @@
}
public void indexDocument(SearchDocument searchDocument, SearchParticipant searchParticipant, Index index, IPath indexPath) throws IOException {
try {
- searchDocument.index = index;
+ ((InternalSearchDocument) searchDocument).index = index;
searchParticipant.indexDocument(searchDocument, indexPath);
} finally {
- searchDocument.index = null;
+ ((InternalSearchDocument) searchDocument).index = null;
}
}
/**
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/FieldPattern.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/FieldPattern.java
index dd2acae..0d54c81 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/FieldPattern.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/FieldPattern.java
@@ -29,7 +29,7 @@
protected static char[][] DECL_CATEGORIES = { FIELD_DECL };
public static char[] createIndexKey(char[] fieldName) {
- return encodeIndexKey(fieldName, R_EXACT_MATCH);
+ return fieldName;
}
public FieldPattern(
@@ -59,7 +59,7 @@
return new FieldPattern(false, false, false, null, null, null, null, null, R_EXACT_MATCH | R_CASE_SENSITIVE);
}
public char[] getIndexKey() {
- return encodeIndexKey(this.name, getMatchMode());
+ return this.name;
}
public char[][] getMatchCategories() {
if (this.findReferences)
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/PackageReferencePattern.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/PackageReferencePattern.java
index 4c89362..f8b75b2 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/PackageReferencePattern.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/PackageReferencePattern.java
@@ -49,7 +49,7 @@
public char[] getIndexKey() {
// Package reference keys are encoded as 'name' (where 'name' is the last segment of the package name)
if (this.currentSegment >= 0)
- return encodeIndexKey(this.segments[this.currentSegment], getMatchMode());
+ return this.segments[this.currentSegment];
return null;
}
public char[][] getMatchCategories() {
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/TypeReferencePattern.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/TypeReferencePattern.java
index fff42df..8bccb5b 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/TypeReferencePattern.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/TypeReferencePattern.java
@@ -51,11 +51,11 @@
}
public char[] getIndexKey() {
if (this.simpleName != null)
- return encodeIndexKey(this.simpleName, getMatchMode());
+ return this.simpleName;
// Optimization, eg. type reference is 'org.eclipse.jdt.core.*'
if (this.currentSegment >= 0)
- return encodeIndexKey(this.segments[this.currentSegment], getMatchMode());
+ return this.segments[this.currentSegment];
return null;
}
public char[][] getMatchCategories() {