1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.commons.compress.harmony.unpack200.bytecode;
20
21
22
23
24 public class CPMethodRef extends CPRef {
25
26 private boolean hashCodeComputed;
27
28 private int cachedHashCode;
29
30 public CPMethodRef(final CPClass className, final CPNameAndType descriptor, final int globalIndex) {
31 super(CP_Methodref, className, descriptor, globalIndex);
32 }
33
34 private void generateHashCode() {
35 hashCodeComputed = true;
36 final int PRIME = 31;
37 int result = 1;
38 result = PRIME * result + className.hashCode();
39 result = PRIME * result + nameAndType.hashCode();
40 cachedHashCode = result;
41 }
42
43 @Override
44 protected ClassFileEntry[] getNestedClassFileEntries() {
45 return new ClassFileEntry[] { className, nameAndType };
46 }
47
48 @Override
49 public int hashCode() {
50 if (!hashCodeComputed) {
51 generateHashCode();
52 }
53 return cachedHashCode;
54 }
55
56 }