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