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 ConstantMethodHandle extends Constant {
32
33 private int referenceKind;
34 private int referenceIndex;
35
36
37
38
39
40
41 public ConstantMethodHandle(final ConstantMethodHandle c) {
42 this(c.getReferenceKind(), c.getReferenceIndex());
43 }
44
45
46
47
48
49
50
51 ConstantMethodHandle(final DataInput file) throws IOException {
52 this(file.readUnsignedByte(), file.readUnsignedShort());
53 }
54
55 public ConstantMethodHandle(final int referenceKind, final int referenceIndex) {
56 super(Const.CONSTANT_MethodHandle);
57 this.referenceKind = referenceKind;
58 this.referenceIndex = referenceIndex;
59 }
60
61
62
63
64
65
66
67 @Override
68 public void accept(final Visitor v) {
69 v.visitConstantMethodHandle(this);
70 }
71
72
73
74
75
76
77
78 @Override
79 public void dump(final DataOutputStream file) throws IOException {
80 file.writeByte(super.getTag());
81 file.writeByte(referenceKind);
82 file.writeShort(referenceIndex);
83 }
84
85 public int getReferenceIndex() {
86 return referenceIndex;
87 }
88
89 public int getReferenceKind() {
90 return referenceKind;
91 }
92
93 public void setReferenceIndex(final int referenceIndex) {
94 this.referenceIndex = referenceIndex;
95 }
96
97 public void setReferenceKind(final int referenceKind) {
98 this.referenceKind = referenceKind;
99 }
100
101
102
103
104 @Override
105 public String toString() {
106 return super.toString() + "(referenceKind = " + referenceKind + ", referenceIndex = " + referenceIndex + ")";
107 }
108 }