1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.bcel.generic;
21
22 import org.apache.bcel.classfile.ConstantCP;
23 import org.apache.bcel.classfile.ConstantNameAndType;
24 import org.apache.bcel.classfile.ConstantPool;
25 import org.apache.bcel.classfile.ConstantUtf8;
26
27
28
29
30
31
32 public abstract class NameSignatureInstruction extends CPInstruction {
33
34 public NameSignatureInstruction() {
35 }
36
37 public NameSignatureInstruction(final short opcode, final int index) {
38 super(opcode, index);
39 }
40
41
42
43
44 public String getName(final ConstantPoolGen cpg) {
45 final ConstantPool cp = cpg.getConstantPool();
46 final ConstantNameAndType cnat = getNameAndType(cpg);
47 return ((ConstantUtf8) cp.getConstant(cnat.getNameIndex())).getBytes();
48 }
49
50 public ConstantNameAndType getNameAndType(final ConstantPoolGen cpg) {
51 final ConstantPool cp = cpg.getConstantPool();
52 final ConstantCP cmr = (ConstantCP) cp.getConstant(super.getIndex());
53 return (ConstantNameAndType) cp.getConstant(cmr.getNameAndTypeIndex());
54 }
55
56
57
58
59 public String getSignature(final ConstantPoolGen cpg) {
60 final ConstantPool cp = cpg.getConstantPool();
61 final ConstantNameAndType cnat = getNameAndType(cpg);
62 return ((ConstantUtf8) cp.getConstant(cnat.getSignatureIndex())).getBytes();
63 }
64
65 }