ClassGen->ClassFile, ClassGen.FieldOrMethodRef->MemberRef
[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     Type.Class klass;
14     String name;
15     String descriptor;
16         
17     MemberRef(Type.Class klass, String name, String descriptor) { this.klass = klass; this.name = name; this.descriptor = descriptor; }
18     MemberRef(MemberRef o) { this.klass = o.klass; this.name = o.name; this.descriptor = o.descriptor; }
19     public boolean equals(Object o_) {
20         if(!(o_ instanceof MemberRef)) return false;
21         MemberRef o = (MemberRef) o_;
22         return o.klass.equals(klass) && o.name.equals(name) && o.descriptor.equals(descriptor);
23     }
24     public int hashCode() { return klass.hashCode() ^ name.hashCode() ^ descriptor.hashCode(); }
25 }
26