ca39c93e30bbb72345a98eacdedcad26db59d381
[org.ibex.classgen.git] / src / org / ibex / classgen / MemberRef.java
1 package org.ibex.classgen;
2
3 import java.util.*;
4 import java.io.*;
5
6 /** A class representing a field or method reference. This is used as an argument to the INVOKE*, GET*, and PUT* bytecodes
7     @see MethodRef
8     @see FieldRef
9     @see MethodRef.I
10     @see FieldRef
11 */
12 public abstract class MemberRef {
13     public final Type.Class klass;
14     public final String name;
15         
16     MemberRef(Type.Class klass, String name) {
17         this.klass = klass;
18         this.name = name;
19     }
20     public abstract String getDescriptor();
21     public boolean equals(Object o_) {
22         if(!(o_ instanceof MemberRef)) return false;
23         MemberRef o = (MemberRef) o_;
24         return o.klass.equals(klass) && o.name.equals(name) && o.getDescriptor().equals(getDescriptor());
25     }
26     public int hashCode() { return klass.hashCode() ^ name.hashCode() ^ getDescriptor().hashCode(); }
27 }
28