1 20 21 package com.tonicsystems.jarjar; 22 23 import com.tonicsystems.jarjar.util.*; 24 import org.objectweb.asm.*; 25 import org.objectweb.asm.commons.EmptyVisitor; 26 27 class StringReader extends EmptyVisitor 28 { 29 private StringVisitor sv; 30 private int line = -1; 31 32 public StringReader(StringVisitor sv) { 33 this.sv = sv; 34 } 35 36 private void handleObject(Object value) { 37 if (value instanceof String ) 38 sv.visitString((String )value, line); 39 } 40 41 public void visit(String name, Object value) { 42 handleObject(value); 43 } 44 45 public void visitEnum(String name, String desc, String value) { 46 handleObject(value); 47 } 48 49 public void visit(int version, int access, String name, String signature, String superName, String [] interfaces) { 50 line = -1; 51 sv.visitStart(name); 52 } 53 54 public void visitEnd() { 55 sv.visitEnd(); 56 } 57 58 public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { 59 handleObject(value); 60 return this; 61 } 62 63 public void visitLdcInsn(Object cst) { 64 handleObject(cst); 65 } 66 67 public void visitLineNumber(int line, Label start) { 68 StringReader.this.line = line; 69 } 70 } 71 | Popular Tags |