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