1 21 package proguard.classfile.constant; 22 23 import proguard.classfile.*; 24 import proguard.classfile.constant.visitor.ConstantVisitor; 25 import proguard.classfile.visitor.*; 26 27 import java.io.*; 28 29 34 public class StringConstant extends Constant 35 { 36 public int u2stringIndex; 37 38 48 public Clazz referencedClass; 49 50 57 public Member referencedMember; 58 59 60 63 public StringConstant() 64 { 65 } 66 67 68 74 public StringConstant(int u2stringIndex, 75 Clazz referencedClass, 76 Member referenceMember) 77 { 78 this.u2stringIndex = u2stringIndex; 79 this.referencedClass = referencedClass; 80 this.referencedMember = referenceMember; 81 } 82 83 84 87 public String getString(Clazz clazz) 88 { 89 return clazz.getString(u2stringIndex); 90 } 91 92 93 95 public int getTag() 96 { 97 return ClassConstants.CONSTANT_String; 98 } 99 100 public void accept(Clazz clazz, ConstantVisitor constantVisitor) 101 { 102 constantVisitor.visitStringConstant(clazz, this); 103 } 104 105 106 109 public void referencedClassAccept(ClassVisitor classVisitor) 110 { 111 if (referencedClass != null && 112 referencedMember == null) 113 { 114 referencedClass.accept(classVisitor); 115 } 116 } 117 118 119 122 public void referencedMemberAccept(MemberVisitor memberVisitor) 123 { 124 if (referencedMember != null) 125 { 126 referencedMember.accept(referencedClass, memberVisitor); 127 } 128 } 129 } 130 | Popular Tags |