1 21 package proguard.classfile.editor; 22 23 import proguard.classfile.*; 24 import proguard.classfile.util.SimplifiedVisitor; 25 import proguard.classfile.attribute.visitor.AttributeVisitor; 26 import proguard.classfile.attribute.*; 27 import proguard.classfile.attribute.annotation.*; 28 import proguard.classfile.attribute.preverification.*; 29 30 36 public class AttributeAdder 37 implements AttributeVisitor 38 { 39 private ProgramClass targetClass; 40 private ProgramMember targetMember; 41 private Attribute targetAttribute; 42 43 private ConstantAdder constantAdder = new ConstantAdder(); 44 private AttributesEditor attributesEditor = new AttributesEditor(); 45 46 47 51 public AttributeAdder(ProgramClass targetClass) 52 { 53 this(targetClass, null, null); 54 } 55 56 57 61 public AttributeAdder(ProgramClass targetClass, 62 ProgramMember targetMember) 63 { 64 this(targetClass, targetMember, null); 65 } 66 67 68 72 public AttributeAdder(ProgramClass targetClass, 73 ProgramMember targetMember, 74 Attribute targetAttribute) 75 { 76 this.targetClass = targetClass; 77 this.targetMember = targetMember; 78 this.targetAttribute = targetAttribute; 79 80 constantAdder.setTargetClass(targetClass); 81 } 82 83 84 86 public void visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute) 87 { 88 } 90 91 92 public void visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute) 93 { 94 } 96 97 98 public void visitSourceDirAttribute(Clazz clazz, SourceDirAttribute sourceDirAttribute) 99 { 100 } 102 103 104 public void visitInnerClassesAttribute(Clazz clazz, InnerClassesAttribute innerClassesAttribute) 105 { 106 } 108 109 110 public void visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute) 111 { 112 } 114 115 116 public void visitDeprecatedAttribute(Clazz clazz, DeprecatedAttribute deprecatedAttribute) 117 { 118 } 120 121 122 public void visitDeprecatedAttribute(Clazz clazz, Field field, DeprecatedAttribute deprecatedAttribute) 123 { 124 } 126 127 128 public void visitDeprecatedAttribute(Clazz clazz, Method method, DeprecatedAttribute deprecatedAttribute) 129 { 130 } 132 133 134 public void visitSyntheticAttribute(Clazz clazz, SyntheticAttribute syntheticAttribute) 135 { 136 } 138 139 140 public void visitSyntheticAttribute(Clazz clazz, Field field, SyntheticAttribute syntheticAttribute) 141 { 142 } 144 145 146 public void visitSyntheticAttribute(Clazz clazz, Method method, SyntheticAttribute syntheticAttribute) 147 { 148 } 150 151 152 public void visitSignatureAttribute(Clazz clazz, SignatureAttribute signatureAttribute) 153 { 154 } 156 157 158 public void visitSignatureAttribute(Clazz clazz, Field field, SignatureAttribute signatureAttribute) 159 { 160 } 162 163 164 public void visitSignatureAttribute(Clazz clazz, Method method, SignatureAttribute signatureAttribute) 165 { 166 } 168 169 170 public void visitConstantValueAttribute(Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute) 171 { 172 } 174 175 176 public void visitExceptionsAttribute(Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute) 177 { 178 ExceptionsAttribute newExceptionsAttribute = new ExceptionsAttribute(); 180 181 clazz.constantPoolEntryAccept(exceptionsAttribute.u2attributeNameIndex, 183 constantAdder); 184 185 newExceptionsAttribute.u2attributeNameIndex = constantAdder.getConstantIndex(); 186 187 newExceptionsAttribute.u2exceptionIndexTableLength = 0; 189 newExceptionsAttribute.u2exceptionIndexTable = new int[0]; 190 191 exceptionsAttribute.exceptionEntriesAccept((ProgramClass)clazz, 193 new ExceptionAdder(targetClass, 194 newExceptionsAttribute)); 195 196 attributesEditor.addAttribute(targetClass, 198 (ProgramMethod)targetMember, 199 newExceptionsAttribute); 200 } 201 202 203 public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute) 204 { 205 } 207 208 209 public void visitStackMapAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapAttribute stackMapAttribute) 210 { 211 } 213 214 215 public void visitStackMapTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapTableAttribute stackMapTableAttribute) 216 { 217 } 219 220 221 public void visitLineNumberTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute) 222 { 223 } 225 226 227 public void visitLocalVariableTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute) 228 { 229 } 231 232 233 public void visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute) 234 { 235 } 237 238 239 public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute) 240 { 241 } 243 244 245 public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute) 246 { 247 } 249 250 251 public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute) 252 { 253 } 255 256 257 public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute) 258 { 259 } 261 262 263 public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute) 264 { 265 } 267 268 269 public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute) 270 { 271 } 273 274 275 public void visitRuntimeVisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleParameterAnnotationsAttribute runtimeVisibleParameterAnnotationsAttribute) 276 { 277 } 279 280 281 public void visitRuntimeInvisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleParameterAnnotationsAttribute runtimeInvisibleParameterAnnotationsAttribute) 282 { 283 } 285 286 287 public void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute) 288 { 289 } 291 } 292 | Popular Tags |