23
24 /*
25 * @test
26 * @bug 6453386
27 * @summary Verify that example code in Elements.overrides works as spec'ed.
28 * @author Scott Seligman
29 * @compile -g OverridesSpecEx.java
30 * @compile -processor OverridesSpecEx -proc:only OverridesSpecEx.java
31 */
32
33 import java.util.Set;
34 import javax.annotation.processing.*;
35 import javax.lang.model.SourceVersion;
36 import javax.lang.model.element.*;
37 import javax.lang.model.type.*;
38 import javax.lang.model.util.*;
39
40 import static javax.lang.model.util.ElementFilter.*;
41
42
43 @SupportedSourceVersion(SourceVersion.RELEASE_6)
44 @SupportedAnnotationTypes("*")
45 public class OverridesSpecEx extends AbstractProcessor {
46
47 Elements elements;
48 Types types;
49
50 public void init(ProcessingEnvironment penv) {
51 super.init(penv);
52 elements = penv.getElementUtils();
53 types = penv.getTypeUtils();
54 }
55
56 public boolean process(Set<? extends TypeElement> annoTypes,
57 RoundEnvironment round) {
58 if (!round.processingOver())
59 doit(annoTypes, round);
60 return true;
61 }
62
63 private void doit(Set<? extends TypeElement> annoTypes,
64 RoundEnvironment round) {
65 TypeElement string = elements.getTypeElement("java.lang.String");
66 TypeElement object = elements.getTypeElement("java.lang.Object");
67
68 ExecutableElement m1 = null;
69 ExecutableElement m2 = null;
70 for (ExecutableElement m : methodsIn(string.getEnclosedElements())) {
71 if (m.getSimpleName().contentEquals("hashCode")) {
72 m1 = m;
73 break;
74 }
75 }
76 for (ExecutableElement m : methodsIn(object.getEnclosedElements())) {
77 if (m.getSimpleName().contentEquals("hashCode")) {
78 m2 = m;
79 break;
80 }
81 }
82
|
23
24 /*
25 * @test
26 * @bug 6453386
27 * @summary Verify that example code in Elements.overrides works as spec'ed.
28 * @author Scott Seligman
29 * @compile -g OverridesSpecEx.java
30 * @compile -processor OverridesSpecEx -proc:only OverridesSpecEx.java
31 */
32
33 import java.util.Set;
34 import javax.annotation.processing.*;
35 import javax.lang.model.SourceVersion;
36 import javax.lang.model.element.*;
37 import javax.lang.model.type.*;
38 import javax.lang.model.util.*;
39
40 import static javax.lang.model.util.ElementFilter.*;
41
42
43 @SupportedAnnotationTypes("*")
44 public class OverridesSpecEx extends AbstractProcessor {
45
46 Elements elements;
47 Types types;
48
49 public void init(ProcessingEnvironment penv) {
50 super.init(penv);
51 elements = penv.getElementUtils();
52 types = penv.getTypeUtils();
53 }
54
55 public boolean process(Set<? extends TypeElement> annoTypes,
56 RoundEnvironment round) {
57 if (!round.processingOver())
58 doit(annoTypes, round);
59 return true;
60 }
61
62 @Override
63 public SourceVersion getSupportedSourceVersion() {
64 return SourceVersion.latest();
65 }
66
67 private void doit(Set<? extends TypeElement> annoTypes,
68 RoundEnvironment round) {
69 TypeElement string = elements.getTypeElement("java.lang.String");
70 TypeElement object = elements.getTypeElement("java.lang.Object");
71
72 ExecutableElement m1 = null;
73 ExecutableElement m2 = null;
74 for (ExecutableElement m : methodsIn(string.getEnclosedElements())) {
75 if (m.getSimpleName().contentEquals("hashCode")) {
76 m1 = m;
77 break;
78 }
79 }
80 for (ExecutableElement m : methodsIn(object.getEnclosedElements())) {
81 if (m.getSimpleName().contentEquals("hashCode")) {
82 m2 = m;
83 break;
84 }
85 }
86
|