87 private StringBuilder exceptions;
88
89 /**
90 * Stack used to keep track of class types that have arguments. Each element
91 * of this stack is a boolean encoded in one bit. The top of the stack is
92 * the lowest order bit. Pushing false = *2, pushing true = *2+1, popping =
93 * /2.
94 */
95 private int argumentStack;
96
97 /**
98 * Stack used to keep track of array class types. Each element of this stack
99 * is a boolean encoded in one bit. The top of the stack is the lowest order
100 * bit. Pushing false = *2, pushing true = *2+1, popping = /2.
101 */
102 private int arrayStack;
103
104 private String separator = "";
105
106 public TraceSignatureVisitor(final int access) {
107 super(Opcodes.ASM5);
108 isInterface = (access & Opcodes.ACC_INTERFACE) != 0;
109 this.declaration = new StringBuilder();
110 }
111
112 private TraceSignatureVisitor(final StringBuilder buf) {
113 super(Opcodes.ASM5);
114 this.declaration = buf;
115 }
116
117 @Override
118 public void visitFormalTypeParameter(final String name) {
119 declaration.append(seenFormalParameter ? ", " : "<").append(name);
120 seenFormalParameter = true;
121 seenInterfaceBound = false;
122 }
123
124 @Override
125 public SignatureVisitor visitClassBound() {
126 separator = " extends ";
127 startType();
128 return this;
129 }
130
131 @Override
132 public SignatureVisitor visitInterfaceBound() {
133 separator = seenInterfaceBound ? ", " : " extends ";
|
87 private StringBuilder exceptions;
88
89 /**
90 * Stack used to keep track of class types that have arguments. Each element
91 * of this stack is a boolean encoded in one bit. The top of the stack is
92 * the lowest order bit. Pushing false = *2, pushing true = *2+1, popping =
93 * /2.
94 */
95 private int argumentStack;
96
97 /**
98 * Stack used to keep track of array class types. Each element of this stack
99 * is a boolean encoded in one bit. The top of the stack is the lowest order
100 * bit. Pushing false = *2, pushing true = *2+1, popping = /2.
101 */
102 private int arrayStack;
103
104 private String separator = "";
105
106 public TraceSignatureVisitor(final int access) {
107 super(Opcodes.ASM6);
108 isInterface = (access & Opcodes.ACC_INTERFACE) != 0;
109 this.declaration = new StringBuilder();
110 }
111
112 private TraceSignatureVisitor(final StringBuilder buf) {
113 super(Opcodes.ASM6);
114 this.declaration = buf;
115 }
116
117 @Override
118 public void visitFormalTypeParameter(final String name) {
119 declaration.append(seenFormalParameter ? ", " : "<").append(name);
120 seenFormalParameter = true;
121 seenInterfaceBound = false;
122 }
123
124 @Override
125 public SignatureVisitor visitClassBound() {
126 separator = " extends ";
127 startType();
128 return this;
129 }
130
131 @Override
132 public SignatureVisitor visitInterfaceBound() {
133 separator = seenInterfaceBound ? ", " : " extends ";
|