<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><br></div><div><br>On Feb 5, 2018, at 12:26 PM, Marcel Taeumel <<a href="mailto:marcel.taeumel@hpi.de">marcel.taeumel@hpi.de</a>> wrote:<br><br></div><blockquote type="cite"><div><div id="__MailbirdStyleContent" style="font-size: 12pt;font-family: calibri;color: #000000">
                                        Hi Eliot,<div><br></div><div>well, th<span style="font-size: 12pt;line-height: 1.5">is seems wrong. :) We have Object >> #inspectorClass but it is only used in Inspector >> #inspect:. We should change StandardToolSet >> #inspect: etc. to make use of #inspectorClass. Then, we should just delete #inspectorClassOf:.</span></div></div></div></blockquote><div><br></div>+1<div><br><blockquote type="cite"><div><div id="__MailbirdStyleContent" style="font-size: 12pt;font-family: calibri;color: #000000"><div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 05.02.2018 19:43:36 schrieb Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>>:</p>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr">Hi All,<div><br></div><div>    I find this method broken and sad:</div><div><br></div><div><div>inspectorClassOf: anObject</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>"Answer the inspector class for the given object. The tool set must know which inspector type to use for which object - the object cannot possibly know what kind of inspectors the toolset provides."</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">       </span>| map |</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>map := Dictionary new.</div><div><span class="gmail-Apple-tab-span" style="white-space:pre"> </span>#(</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">             </span>(CompiledMethod<span class="gmail-Apple-tab-span" style="white-space:pre">               </span>CompiledMethodInspector)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">               </span>(CompositeEvent<span class="gmail-Apple-tab-span" style="white-space:pre">               </span>OrderedCollectionInspector)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">            </span>(Dictionary<span class="gmail-Apple-tab-span" style="white-space:pre">                   </span>DictionaryInspector)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">           </span>(ExternalStructure<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>ExternalStructureInspector)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">            </span>(FloatArray<span class="gmail-Apple-tab-span" style="white-space:pre">                   </span>OrderedCollectionInspector)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">            </span>(OrderedCollection<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>OrderedCollectionInspector)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">            </span>(Set<span class="gmail-Apple-tab-span" style="white-space:pre">                                  </span>SetInspector)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">          </span>(WeakSet<span class="gmail-Apple-tab-span" style="white-space:pre">                      </span>WeakSetInspector)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>) do:[:spec|</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">           </span>map at: spec first put: spec last.</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>].</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>anObject class withAllSuperclassesDo:[:cls|</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">            </span>map at: cls name ifPresent:[:inspectorName| ^Smalltalk classNamed: inspectorName].</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>].</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>^Inspector</div><div><br></div><div>Is this really to be preferred over sending inspectorClass to the object?  This method is bad because it is a point of collision for anyone who wants to add a custom inspector.  Hence it creates unnecessary conflicts between packages, whereas implementing inspectorClass allows one to keep things separated.</div><div><br></div><div>The late binding/defaulting the use of the class name and classNamed: provides here could be achieved by implementing Object>>inspectorClassName just as easily as this hard-wired table.</div><div><br></div><div class="gmail_signature"><div dir="ltr"><div><span style="font-size: 10pt;border-collapse: separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>

                        </blockquote>
                                        </div></div></blockquote><blockquote type="cite"><div><span></span><br></div></blockquote></div></body></html>