< prev index next >

src/java.base/share/classes/jdk/internal/org/objectweb/asm/util/TraceSignatureVisitor.java

Print this page
rev 47452 : imported patch jdk-new-asmv6.patch


  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 ";


< prev index next >