1 | int getInterfaceMethodRefEntry(String interfaceMethodClassName,↵ | | 1 | int getMethodRefEntry(String methodClassName,↵
|
2 | String interfaceMethodName,↵ | | 2 | String methodName,↵
|
3 | String interfaceMethodType) {↵ | | 3 | String methodType) {↵
|
4 | int index = -1;↵ | | 4 | int index = -1;↵
|
|
5 | for (int i = 0; i < entries.size() && index == -1; ++i) {↵ | | 5 | for (int i = 0; i < entries.size() && index == -1; ++i) {↵
|
6 | Object element = entries.elementAt(i);↵ | | 6 | Object element = entries.elementAt(i);↵
|
|
7 | if (element instanceof InterfaceMethodRefCPInfo) {↵ | | 7 | if (element instanceof MethodRefCPInfo) {↵
|
8 | InterfaceMethodRefCPInfo interfaceMethodRefEntry↵ | | 8 | MethodRefCPInfo methodRefEntry↵
|
9 | = (InterfaceMethodRefCPInfo) element;↵ | | 9 | = (MethodRefCPInfo) element;↵
|
|
10 | if (interfaceMethodRefEntry.getInterfaceMethodClassName().equals(↵ | | 10 | if (methodRefEntry.getMethodClassName().equals(↵
|
11 | interfaceMethodClassName)↵ | | 11 | methodClassName)↵
|
12 | && interfaceMethodRefEntry.getInterfaceMethodName().equals(↵ | | 12 | && methodRefEntry.getMethodName().equals(↵
|
13 | interfaceMethodName)↵ | | 13 | methodName)↵
|
14 | && interfaceMethodRefEntry.getInterfaceMethodType().equals(↵ | | 14 | && methodRefEntry.getMethodType().equals(↵
|
15 | interfaceMethodType)) {↵ | | 15 | methodType)) {↵
|
16 | index = i;↵ | | 16 | index = i;↵
|
17 | }↵ | | 17 | }↵
|
18 | }↵ | | 18 | }↵
|
19 | }↵ | | 19 | }↵
|
|
20 | return index;↵ | | 20 | return index;↵
|
21 | }↵ | | 21 | }↵
|
|
22 | /**↵ | | 22 | /**↵
|
23 | * Get the index of a given CONSTANT_FIELDREF entry in the↵ | | 23 | * Get the index of a given CONSTANT_INTERFACEMETHODREF entry in the↵
|
24 | constant↵ | | 24 | * constant↵
|
25 | * pool.↵ | | 25 | pool.↵
|
26 | *↵ | | 26 | *↵
|
27 | * @param fieldClassName the name of the class which contains the field↵ | | 27 | * @param interfaceMethodClassName the name of the ↵
|
28 | * ↵ | | 28 | interface which↵
|
29 | being referenced.↵ | | 29 | * contains the method being referenced.↵
|
30 | * @param fieldName the name of the field being referenced.↵ | | 30 | * @param interfaceMethodName the name of the method being referenced.↵
|
31 | * @param fieldType the type descriptor of the field being↵ | | 31 | * @param interfaceMethodType the type descriptor of the method being↵
|
32 | referenced.↵ | | 32 | * referenced.↵
|
33 | * @return the index at which the given field ref entry occurs in the↵ | | 33 | * @return the index at which the given method ref entry occurs in the↵
|
34 | * constant pool or -1 if the value does not occur.↵ | | 34 | * constant pool or -1 if the value does not occur.↵
|
35 | */↵ | | 35 | */↵
|
36 | public int getFieldRefEntry(String fieldClassName, String fieldName,↵ | | 36 | public int getInterfaceMethodRefEntry(String ↵
|
| | | 37 | interfaceMethodClassName,↵
|
| | | 38 | String interfaceMethodName,↵
|
37 | String fieldType) {↵ | | 39 | String interfaceMethodType) {↵
|
38 | int index = -1;↵ | | 40 | int index = -1;↵
|
|
39 | for (int i = 0; i < entries.size() && index == -1; ++i) {↵ | | 41 | for (int i = 0; i < entries.size() && index == -1; ++i) {↵
|
40 | Object element = entries.elementAt(i);↵ | | 42 | Object element = entries.elementAt(i);↵
|
|
41 | if (element instanceof FieldRefCPInfo) {↵ | | 43 | if (element instanceof InterfaceMethodRefCPInfo) {↵
|
42 | FieldRefCPInfo fieldRefEntry = (Fiel↵ | | 44 | InterfaceMethodRefCPInfo interfaceMethodRefEntry↵
|
43 | dRefCPInfo) element;↵ | | 45 | = (InterfaceMethodRefCPInfo) element;↵
|
|
44 | if (fieldRefEntry.getFieldClassName().equals(fiel↵ | | 46 | if (interfaceMethodRefEntry.getInterfaceMethodClassName().equals(↵
|
45 | dClassName)↵ | | 47 | interfaceMethodClassName)↵
|
46 | && fieldRefEntry.getFieldName().equals(fiel↵ | | 48 | && interfaceMethodRefEntry.getInterfaceMethodName().equals(↵
|
47 | dName)↵ | | 49 | interfaceMethodName)↵
|
48 | && fieldRefEntry.getFieldType().equals(fiel↵ | | 50 | && interfaceMethodRefEntry.getInterfaceMethodType().equals(↵
|
49 | dType)) {↵ | | 51 | interfaceMethodType)) {↵
|
50 | index = i;↵ | | 52 | index = i;↵
|
51 | }↵ | | 53 | }↵
|
52 | }↵ | | 54 | }↵
|
53 | }↵ | | 55 | }↵
|
|
54 | return index;↵ | | 56 | return index;↵
|
55 | | | 57 |
|