class ObjFieldList
pri next : ObjFieldList;
pri Field : ObjFieldInfo;
meth SetNext =^ (val n: ObjFieldList ·
next:= n;
)
end
meth GetNext =^ (res n: ObjFieldList ·
n:= next;
)
end
meth GetField =^ (res f: ObjFieldInfo ·
f:= Field;
)
end
meth SetField =^ (val f: ObjFieldInfo ·
Field:= f;
)
end
% Getting a data field from the object
meth GetDataFd =^ ( val N: String;
res D: Object ·
var Fd : ObjFieldInfo ·
var name : String ·
var next : ObjFieldList ·
self.GetName(name);
If [] Name = N ®
ObjFd.GetField(Fd);
Fd.GetData(D);
[] Name <> N ®
self.Getnext(next);
GetDataFd(N,D);
Fi
end end end
)
end
% Uppdating a data field in the object
meth PutDataFd =^ ( vres Tail:ObjFieldList;
val N: String;
val D: Object ·
var next : ObjFieldList ·
var Fd : ObjFieldInfo ·
var name : String ·
Tail.GetField(Fd);
Fd.GetName(name);
if [] Name = N ®
Fd.SetData(D);
Tail.SetField(Fd);
[] Name <> N ®
Tail.GetNext(next);
Next.PutDataFd(Next, N, D);
Tail.PutNext(Next);
fi
end end end
)
end
end