MOO-cows Mailing List Archive
[Prev][Next][Index][Thread]
Re: SERVER: Verbing properties
--- sir@po.cwru.edu wrote:
>Remember, all -c properties are un-overrideable (I know, it wasn't
>in the draft, I thought of it yesterday) thus, if add_verb is called
>with a verb name that could correspond to a -c verbed property, E_PERM is
>raised.
>This means some fundamental properties are stable, with their code
>readily available.
This means that I as a nonwizard parent class owner am unable to write
code which maintains !c properties -- which is about the only kind of
properties parent class authors can manipulate!
--- end of quoted material ---
Huh? No. By "overrideable", we don't mean the child having a different value
than the parent, we mean that the owner of the child (not you and not a wizard)
cannot make a verb that superceeds your property.
example:
(#5 does this)
;create(#1,#5)
=> #10
;add_property(#10, "quack", "quack", {#5, "r"});
;add_property(#10, "moo", "moo!", {#5, "rc"});
=> 0
(#6 does this)
;create(#10, #6)
=> #11
;#11.quack = "moo!";
=> E_PERM
;add_property(#11, "quack", "moo!", {#6, "r"});
=> E_PERM
;add_verb(#11, {#6, "rxd", "_set_quack"}, {"this", "none", "this"});
=> E_PERM
;add_verb(#11, {#6, "rxd", "_set_qu*"}, {"this", "none", "this"});
=> E_PERM
;#11.moo = "quack";
=> "quack"
;add_property(#11, "moo", "quack", {#6, "r"});
=> E_INVARG
;add_verb(#11, {#6, "rxd", "_set_moo"}, {"this", "none", "this"});
=> 0
;add_verb(#11, {#6, "rxd", "_set_m*"}, {"this", "none", "this"});
=> 0
I think this has flexibility and security and is compatible with the the
current system.
Home |
Subject Index |
Thread Index