1
2
3
4 package joeq.Class;
5
6 import joeq.UTF.Utf8;
7
8 /***
9 * Objects of this class represent unresolved references to class members.
10 *
11 * @author John Whaley <jwhaley@alum.mit.edu>
12 * @version $Id: jq_MemberReference.java 1456 2004-03-09 22:01:46Z jwhaley $
13 */
14 public final class jq_MemberReference {
15
16 private jq_Class clazz;
17 private jq_NameAndDesc nd;
18
19 /*** Creates new member reference to the named member in the given class.
20 * @param clazz class of the referenced member
21 * @param nd name and descriptor of the referenced member
22 */
23 public jq_MemberReference(jq_Class clazz, jq_NameAndDesc nd) {
24 this.clazz = clazz;
25 this.nd = nd;
26 }
27
28 /*** Returns the class of the referenced member.
29 * @return class of referenced member
30 */
31 public final jq_Class getReferencedClass() { return clazz; }
32 /*** Returns the name and descriptor of the referenced member.
33 * @return name and descriptor of referenced member
34 */
35 public final jq_NameAndDesc getNameAndDesc() { return nd; }
36 /*** Returns the name of the referenced member.
37 * @return name of referenced member
38 */
39 public final Utf8 getName() { return nd.getName(); }
40 /*** Returns the descriptor of the referenced member.
41 * @return descriptor of referenced member
42 */
43 public final Utf8 getDesc() { return nd.getDesc(); }
44
45 public boolean equals(Object o) { return equals((jq_MemberReference)o); }
46 public boolean equals(jq_MemberReference that) {
47 return this.clazz == that.clazz && this.nd.equals(that.nd);
48 }
49 public int hashCode() {
50 return clazz.hashCode() ^ nd.hashCode();
51 }
52
53 public String toString() {
54 return "ref to "+clazz+"."+nd;
55 }
56
57 }