1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.bcel.classfile;
18
19 import java.io.DataInput;
20 import java.io.DataOutputStream;
21 import java.io.IOException;
22
23 import org.apache.bcel.Const;
24
25
26
27
28
29
30
31 public final class ConstantNameAndType extends Constant {
32
33 private int nameIndex;
34 private int signatureIndex;
35
36
37
38
39
40
41 public ConstantNameAndType(final ConstantNameAndType c) {
42 this(c.getNameIndex(), c.getSignatureIndex());
43 }
44
45
46
47
48
49
50
51 ConstantNameAndType(final DataInput file) throws IOException {
52 this(file.readUnsignedShort(), file.readUnsignedShort());
53 }
54
55
56
57
58
59 public ConstantNameAndType(final int nameIndex, final int signatureIndex) {
60 super(Const.CONSTANT_NameAndType);
61 this.nameIndex = nameIndex;
62 this.signatureIndex = signatureIndex;
63 }
64
65
66
67
68
69
70
71 @Override
72 public void accept(final Visitor v) {
73 v.visitConstantNameAndType(this);
74 }
75
76
77
78
79
80
81
82 @Override
83 public void dump(final DataOutputStream file) throws IOException {
84 file.writeByte(super.getTag());
85 file.writeShort(nameIndex);
86 file.writeShort(signatureIndex);
87 }
88
89
90
91
92 public String getName(final ConstantPool cp) {
93 return cp.constantToString(getNameIndex(), Const.CONSTANT_Utf8);
94 }
95
96
97
98
99 public int getNameIndex() {
100 return nameIndex;
101 }
102
103
104
105
106 public String getSignature(final ConstantPool cp) {
107 return cp.constantToString(getSignatureIndex(), Const.CONSTANT_Utf8);
108 }
109
110
111
112
113 public int getSignatureIndex() {
114 return signatureIndex;
115 }
116
117
118
119
120 public void setNameIndex(final int nameIndex) {
121 this.nameIndex = nameIndex;
122 }
123
124
125
126
127 public void setSignatureIndex(final int signatureIndex) {
128 this.signatureIndex = signatureIndex;
129 }
130
131
132
133
134 @Override
135 public String toString() {
136 return super.toString() + "(nameIndex = " + nameIndex + ", signatureIndex = " + signatureIndex + ")";
137 }
138 }