<div class="gmail_quote">On Thu, Feb 5, 2009 at 7:42 AM, Philippe Marschall <span dir="ltr"><<a href="mailto:philippe.marschall@gmail.com">philippe.marschall@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">2009/2/4 Julian Fitzell <<a href="mailto:jfitzell@gmail.com">jfitzell@gmail.com</a>>:<br>
</div><div class="Ih2E3d">
> WAError and WAObject could be useful I suppose but one of the things we<br>
> wanted with WAObject was to be able to add methods to it for all Seaside<br>
> objects and without worrying about name conflicts. If Pier and Magritte and<br>
> everything are going to subclass WAObject too, then that is no longer an<br>
> appropriate place to do that.<br>
<br>
</div>The problem is even worse becuase Magritte (I think) and Pier also add<br>
root component classes that add methods. We also must not get a<br>
conflict on them. So I think it's ok to say that if you use WAObject<br>
then you have to make sure you get no conflicts because that is also<br>
true for WAComponent.<br></blockquote></div><br>Hm... I don't seem to have written this but my point was only half about conflicts. The other point is about method visibility and error grouping.<br><br>For errors, if you want to be able to catch all Seaside errors but not filesystem errors (for example), you'd want to be able to catch WAError but that doesn't work if Pier also subclasses WAError.<br>
<br>For WAObject, do we want every object in Seaside to respond to #acceptMagritte: for example? Every object in Magritte to respond to #requestContext? I say definitely not.<br><br>If we're going to set up this platform for use by other projects, I think we need to be careful to separate compatibility from convenience. WAObject>>initialize is compatibility; WAObject>>requestContext is convenience. Having an Error subclass that you know implents #signal: is compatibility; having an Error subclass that all of a project's errors subclass is convenience.<br>
<br>Julian<br>