Source code: Clazz/jq_MemberReference.java
1 // jq_MemberReference.java, created Mon Feb 5 23:23:20 2001 by joewhaley
2 // Copyright (C) 2001-3 John Whaley <jwhaley@alum.mit.edu>
3 // Licensed under the terms of the GNU LGPL; see COPYING for details.
4 package Clazz;
5
6 import 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,v 1.5 2003/05/12 10:05:12 joewhaley Exp $
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 }