460 }
461
462 public void printSymbol(String label, Symbol symbol) {
463 printSymbol(label, symbol, Details.FULL);
464 }
465
466 protected void printSymbol(String label, Symbol sym, Details details) {
467 if (sym == null) {
468 printNull(label);
469 } else {
470 switch (details) {
471 case SUMMARY:
472 printString(label, toString(sym));
473 break;
474
475 case FULL:
476 indent();
477 out.print(label);
478 out.println(": " +
479 info(sym.getClass(),
480 String.format("0x%x--%s", sym.kind, Kinds.kindName(sym)),
481 sym.getKind())
482 + " " + sym.name
483 + " " + hashString(sym));
484
485 indent(+1);
486 if (showSrc) {
487 JCTree tree = (JCTree) trees.getTree(sym);
488 if (tree != null)
489 printSource("src", tree);
490 }
491 printString("flags", String.format("0x%x--%s",
492 sym.flags_field, Flags.toString(sym.flags_field)));
493 printObject("completer", sym.completer, Details.SUMMARY); // what if too long?
494 printSymbol("owner", sym.owner, Details.SUMMARY);
495 printType("type", sym.type, Details.SUMMARY);
496 printType("erasure", sym.erasure_field, Details.SUMMARY);
497 sym.accept(symVisitor, null);
498 printAnnotations("annotations", sym.getMetadata(), Details.SUMMARY);
499 indent(-1);
500 }
|
460 }
461
462 public void printSymbol(String label, Symbol symbol) {
463 printSymbol(label, symbol, Details.FULL);
464 }
465
466 protected void printSymbol(String label, Symbol sym, Details details) {
467 if (sym == null) {
468 printNull(label);
469 } else {
470 switch (details) {
471 case SUMMARY:
472 printString(label, toString(sym));
473 break;
474
475 case FULL:
476 indent();
477 out.print(label);
478 out.println(": " +
479 info(sym.getClass(),
480 String.format("0x%x--%s", sym.kind.ordinal(), Kinds.kindName(sym)),
481 sym.getKind())
482 + " " + sym.name
483 + " " + hashString(sym));
484
485 indent(+1);
486 if (showSrc) {
487 JCTree tree = (JCTree) trees.getTree(sym);
488 if (tree != null)
489 printSource("src", tree);
490 }
491 printString("flags", String.format("0x%x--%s",
492 sym.flags_field, Flags.toString(sym.flags_field)));
493 printObject("completer", sym.completer, Details.SUMMARY); // what if too long?
494 printSymbol("owner", sym.owner, Details.SUMMARY);
495 printType("type", sym.type, Details.SUMMARY);
496 printType("erasure", sym.erasure_field, Details.SUMMARY);
497 sym.accept(symVisitor, null);
498 printAnnotations("annotations", sym.getMetadata(), Details.SUMMARY);
499 indent(-1);
500 }
|