|
object properties
on condense me
-- erzeuge eine Lp aller Prop:Val paare eines obj
if objectP(me) then
dLp = [:]
anz = count(me)
repeat with i=1 to anz
dProp = me.getPropat (i)
dVal = me.getaprop(dProp)
dLp.addProp(dProp,dVal)
end repeat
return dLp
end if
end
on define me
set erg=value(void)
if objectP(me) then
put RETURN & me & RETURN into erg
repeat with i=1 to count(me)
set prop to getPropat (me,i)
set valu to getaprop(me, prop)
put fv2s(me,prop) & ":" && fv2s(me,valu) & RETURN after erg
end repeat
-- uncomment next line if you want ancestor info, too
-- if objectP(getaprop(me, #ancestor)) then put define (the ancestor of me) after erg
set erg = erg & RETURN
return erg
end if
end
---------------
-- helps the above one formatting the output
on fv2s me,dVal
-- formatVal2String
-- macht daten "doAble"
-- rettet #symbol und #string vor der automatischen Typkonvertierung
set dTxt=""
set dIlk = ilk(dVal)
case dIlk of
#symbol:
set dTxt = "#" & string(dVal)
#string:
set dTxt = QUOTE & string(dVal) & QUOTE
#void:
set dTxt = "VOID"
otherwise
set dTxt = string(dVal)
end case
return dtxt
end
|