<div class="gmail_quote">On Thu, Feb 5, 2009 at 7:42 AM, Philippe Marschall <span dir="ltr">&lt;<a href="mailto:philippe.marschall@gmail.com">philippe.marschall@gmail.com</a>&gt;</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 &lt;<a href="mailto:jfitzell@gmail.com">jfitzell@gmail.com</a>&gt;:<br>
</div><div class="Ih2E3d">
&gt; WAError and WAObject could be useful I suppose but one of the things we<br>
&gt; wanted with WAObject was to be able to add methods to it for all Seaside<br>
&gt; objects and without worrying about name conflicts. If Pier and Magritte and<br>
&gt; everything are going to subclass WAObject too, then that is no longer an<br>
&gt; 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&#39;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&#39;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&#39;d want to be able to catch WAError but that doesn&#39;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&#39;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&gt;&gt;initialize is compatibility; WAObject&gt;&gt;requestContext is convenience. Having an Error subclass that you know implents #signal: is compatibility; having an Error subclass that all of a project&#39;s errors subclass is convenience.<br>
<br>Julian<br>