31 import static javax.lang.model.element.ElementKind.*;
32 import static javax.lang.model.element.NestingKind.*;
33 import javax.lang.model.type.*;
34 import javax.lang.model.util.*;
35
36 import java.io.PrintWriter;
37 import java.io.Writer;
38 import java.util.*;
39
40 /**
41 * A processor which prints out elements. Used to implement the
42 * -Xprint option; the included visitor class is used to implement
43 * Elements.printElements.
44 *
45 * <p><b>This is NOT part of any API supported by Sun Microsystems.
46 * If you write code that depends on this, you do so at your own risk.
47 * This code and its internal interfaces are subject to change or
48 * deletion without notice.</b>
49 */
50 @SupportedAnnotationTypes("*")
51 @SupportedSourceVersion(SourceVersion.RELEASE_6)
52 public class PrintingProcessor extends AbstractProcessor {
53 PrintWriter writer;
54
55 public PrintingProcessor() {
56 super();
57 writer = new PrintWriter(System.out);
58 }
59
60 public void setWriter(Writer w) {
61 writer = new PrintWriter(w);
62 }
63
64 @Override
65 public boolean process(Set<? extends TypeElement> tes,
66 RoundEnvironment renv) {
67
68 for(Element element : renv.getRootElements()) {
69 print(element);
70 }
71
357 }
358 break;
359
360 }
361
362 for(Modifier m: modifiers) {
363 writer.print(m.toString() + " ");
364 }
365 }
366
367 private void printFormalTypeParameters(Parameterizable e,
368 boolean pad) {
369 List<? extends TypeParameterElement> typeParams = e.getTypeParameters();
370 if (typeParams.size() > 0) {
371 writer.print("<");
372
373 boolean first = true;
374 for(TypeParameterElement tpe: typeParams) {
375 if (!first)
376 writer.print(", ");
377 writer.print(tpe.toString());
378 first = false;
379 }
380
381 writer.print(">");
382 if (pad)
383 writer.print(" ");
384 }
385 }
386
387 private void printAnnotationsInline(Element e) {
388 List<? extends AnnotationMirror> annots = e.getAnnotationMirrors();
389 for(AnnotationMirror annotationMirror : annots) {
390 writer.print(annotationMirror);
391 writer.print(" ");
392 }
393 }
394
395 private void printAnnotations(Element e) {
396 List<? extends AnnotationMirror> annots = e.getAnnotationMirrors();
|
31 import static javax.lang.model.element.ElementKind.*;
32 import static javax.lang.model.element.NestingKind.*;
33 import javax.lang.model.type.*;
34 import javax.lang.model.util.*;
35
36 import java.io.PrintWriter;
37 import java.io.Writer;
38 import java.util.*;
39
40 /**
41 * A processor which prints out elements. Used to implement the
42 * -Xprint option; the included visitor class is used to implement
43 * Elements.printElements.
44 *
45 * <p><b>This is NOT part of any API supported by Sun Microsystems.
46 * If you write code that depends on this, you do so at your own risk.
47 * This code and its internal interfaces are subject to change or
48 * deletion without notice.</b>
49 */
50 @SupportedAnnotationTypes("*")
51 // TODO: Change to version 7 based visitors when available
52 @SupportedSourceVersion(SourceVersion.RELEASE_7)
53 public class PrintingProcessor extends AbstractProcessor {
54 PrintWriter writer;
55
56 public PrintingProcessor() {
57 super();
58 writer = new PrintWriter(System.out);
59 }
60
61 public void setWriter(Writer w) {
62 writer = new PrintWriter(w);
63 }
64
65 @Override
66 public boolean process(Set<? extends TypeElement> tes,
67 RoundEnvironment renv) {
68
69 for(Element element : renv.getRootElements()) {
70 print(element);
71 }
72
358 }
359 break;
360
361 }
362
363 for(Modifier m: modifiers) {
364 writer.print(m.toString() + " ");
365 }
366 }
367
368 private void printFormalTypeParameters(Parameterizable e,
369 boolean pad) {
370 List<? extends TypeParameterElement> typeParams = e.getTypeParameters();
371 if (typeParams.size() > 0) {
372 writer.print("<");
373
374 boolean first = true;
375 for(TypeParameterElement tpe: typeParams) {
376 if (!first)
377 writer.print(", ");
378 printAnnotationsInline(tpe);
379 writer.print(tpe.toString());
380 first = false;
381 }
382
383 writer.print(">");
384 if (pad)
385 writer.print(" ");
386 }
387 }
388
389 private void printAnnotationsInline(Element e) {
390 List<? extends AnnotationMirror> annots = e.getAnnotationMirrors();
391 for(AnnotationMirror annotationMirror : annots) {
392 writer.print(annotationMirror);
393 writer.print(" ");
394 }
395 }
396
397 private void printAnnotations(Element e) {
398 List<? extends AnnotationMirror> annots = e.getAnnotationMirrors();
|