X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fclassgen%2FMemberRef.java;fp=src%2Forg%2Fibex%2Fclassgen%2FMemberRef.java;h=3c099605fd8f17893337229bdc53566eb1899013;hb=6c44a3470c1ae5c0e54153871805e24e394a96bb;hp=0000000000000000000000000000000000000000;hpb=2ae55e5d3710c31b94d6c0e39ffaa617186c1e25;p=org.ibex.classgen.git diff --git a/src/org/ibex/classgen/MemberRef.java b/src/org/ibex/classgen/MemberRef.java new file mode 100644 index 0000000..3c09960 --- /dev/null +++ b/src/org/ibex/classgen/MemberRef.java @@ -0,0 +1,26 @@ +package org.ibex.classgen; + +import java.util.*; +import java.io.*; + +/** A class representing a field or method reference. This is used as an argument to the INVOKE*, GET*, and PUT* bytecodes + @see MethodRef + @see FieldRef + @see MethodRef.I + @see FieldRef +*/ +public abstract class MemberRef { + Type.Class klass; + String name; + String descriptor; + + MemberRef(Type.Class klass, String name, String descriptor) { this.klass = klass; this.name = name; this.descriptor = descriptor; } + MemberRef(MemberRef o) { this.klass = o.klass; this.name = o.name; this.descriptor = o.descriptor; } + public boolean equals(Object o_) { + if(!(o_ instanceof MemberRef)) return false; + MemberRef o = (MemberRef) o_; + return o.klass.equals(klass) && o.name.equals(name) && o.descriptor.equals(descriptor); + } + public int hashCode() { return klass.hashCode() ^ name.hashCode() ^ descriptor.hashCode(); } +} +