571 |
571 |
572 public <R, D> R accept(Visitor<R, D> visitor, D data) { |
572 public <R, D> R accept(Visitor<R, D> visitor, D data) { |
573 return visitor.visitNameAndType(this, data); |
573 return visitor.visitNameAndType(this, data); |
574 } |
574 } |
575 |
575 |
|
576 @Override |
|
577 public String toString() { |
|
578 return "CONSTANT_NameAndType_info[name_index: " + name_index + ", type_index: " + type_index + "]"; |
|
579 } |
|
580 |
576 public final int name_index; |
581 public final int name_index; |
577 public final int type_index; |
582 public final int type_index; |
578 } |
583 } |
579 |
584 |
580 public static class CONSTANT_String_info extends CPInfo { |
585 public static class CONSTANT_String_info extends CPInfo { |
596 return cp.getUTF8Value(string_index); |
601 return cp.getUTF8Value(string_index); |
597 } |
602 } |
598 |
603 |
599 public <R, D> R accept(Visitor<R, D> visitor, D data) { |
604 public <R, D> R accept(Visitor<R, D> visitor, D data) { |
600 return visitor.visitString(this, data); |
605 return visitor.visitString(this, data); |
|
606 } |
|
607 |
|
608 @Override |
|
609 public String toString() { |
|
610 return "CONSTANT_String_info[class_index: " + string_index + "]"; |
601 } |
611 } |
602 |
612 |
603 public final int string_index; |
613 public final int string_index; |
604 } |
614 } |
605 |
615 |
616 return CONSTANT_Utf8; |
626 return CONSTANT_Utf8; |
617 } |
627 } |
618 |
628 |
619 @Override |
629 @Override |
620 public String toString() { |
630 public String toString() { |
621 return "CONSTANT_Utf8_info[value: " + value + "]"; |
631 if (value.length() < 32 && isPrintableAscii(value)) |
|
632 return "CONSTANT_Utf8_info[value: \"" + value + "\"]"; |
|
633 else |
|
634 return "CONSTANT_Utf8_info[value: (" + value.length() + " chars)]"; |
|
635 } |
|
636 |
|
637 static boolean isPrintableAscii(String s) { |
|
638 for (int i = 0; i < s.length(); i++) { |
|
639 char c = s.charAt(i); |
|
640 if (c < 32 || c >= 127) |
|
641 return false; |
|
642 } |
|
643 return true; |
622 } |
644 } |
623 |
645 |
624 public <R, D> R accept(Visitor<R, D> visitor, D data) { |
646 public <R, D> R accept(Visitor<R, D> visitor, D data) { |
625 return visitor.visitUtf8(this, data); |
647 return visitor.visitUtf8(this, data); |
626 } |
648 } |