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