class MethodList

pri next : MethodList;

pri Method : MethodInfo;

meth SetNext =^ ( val n: MethodList

next:= n;

)

end

meth GetNext =^ ( res n: MethodList

n:= next;

)

end

meth SetMethod =^ ( val m: methodInfo

method:= m;

)

end

meth GetMethod =^ ( res m: MethodInfo

m:= method;

)

end

meth FindMethod =^ ( val name : string;

val descriptor : string;

res mtd : MethodInfo;

res found : Boolean

var m : MethodList

var method : MethodInfo

var mtdName : String

var mtdDescriptor : String

m:= self;

Found:=false;

m.GetMethod(method)

method.GetmtdName(mtdName);

method.GetmtdDescriptor(mtdDescriptor);

If [] (name <> mtdName) or (descriptor <> mtdDescriptor)

m.getNext(m);

if [] m <> null ->

m.FindMethod(name, descriptor, mtd, found);

fi

[] (name = mtdName) and (descriptor = mtdDescriptor)

mtd:= method;

Found:=true

fi

end end end end

)

end

end