<div dir="ltr">Hi Patricio!<div> welcome to the Cuis community and list :-)</div><div> I really like your suggestion, it is something we really need. I have other suggestions for other refactorings if you want to hear them :-)</div><div> You forgot to attach the changes file, please send it to try it out.</div><div> About the tests, if you are using a Cuis image (not a CuisUniversity), you need to load the package <a href="http://BaseImageTest.pck.st">BaseImageTest.pck.st</a>, that is where the tests are. There you will find the on for PushDownMethod.</div><div><br></div><div>Cheers!</div><div>Hernan.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Nov 2, 2022 at 10:00 AM Patricio Tourne Passarino via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-family:Arial;font-size:14px"></div><div style="font-family:Arial;font-size:14px">I have some ideas to improve Push Down Refactor and I was wondering if you could give me any feedback.<br>I'm <span style="background-color:rgb(255,255,255);display:inline">Patricio Tourne Passarino and I'm studying Software Engineering at FIUBA (Facultad de Ingeniería de la Universidad de Buenos Aires). I was introduced to Cuis in my "Algorithms and Coding III" class and I thought of a modification that would be usefull in the following case:</span></div><div style="font-family:Arial;font-size:14px"><font face="Arial" style="font-size:0.875rem"><br></font></div><div style="font-family:Arial;font-size:14px"><font face="Arial" style="font-size:0.875rem">I have a class "</font><span style="font-size:0.875rem;line-height:normal">AClass</span><font face="Arial" style="font-size:0.875rem">" with two classes: "ASubclassOne" and "ASubclassTwo".</font></div><div><div><font face="Arial"><span style="background-color:rgb(255,255,255);display:inline"><font face="Arial"><span style="background-color:rgb(255,255,255);display:inline">"AClass" has "aMessage" implemented:</span></font><br></span></font></div><div><font face="Arial"><span style="background-color:rgb(255,255,255);display:inline"></span></font></div><blockquote style="border-left:3px solid rgb(200,200,200);border-top-color:rgb(200,200,200);border-right-color:rgb(200,200,200);border-bottom-color:rgb(200,200,200);padding-left:10px;color:rgb(102,102,102)"><div><font face="Arial"><span style="background-color:rgb(255,255,255);display:inline"><span>aMessage</span></span></font></div><div><font face="Arial"><span style="background-color:rgb(255,255,255);display:inline"><div><span style="font-size:0.875rem"><br></span></div><div><span style="font-size:0.875rem">    "AClass implementation"</span></div></span></font></div></blockquote><div><span style="font-family:Arial;font-size:14px;line-height:normal;color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255);display:inline">"<span style="background-color:rgb(255,255,255);display:inline">ASubclassOne</span>" has "aMessage" implemented:</span></span></div><blockquote style="border-left:3px solid rgb(200,200,200);border-top-color:rgb(200,200,200);border-right-color:rgb(200,200,200);border-bottom-color:rgb(200,200,200);padding-left:10px;color:rgb(102,102,102)"><div><span style="font-family:Arial;font-size:14px;line-height:normal;color:rgb(0,0,0)"><span style="color:rgb(102,102,102);font-family:system-ui,sans-serif;background-color:rgb(255,255,255)"><font face="Arial"><span style="background-color:rgb(255,255,255);display:inline"><span>aMessage</span></span></font></span></span></div><div><span style="font-family:Arial;font-size:14px;line-height:normal;color:rgb(0,0,0)"><div style="color:rgb(102,102,102);font-family:system-ui,sans-serif;background-color:rgb(255,255,255)"><font face="Arial"><span style="background-color:rgb(255,255,255);display:inline"><div><br></div></span></font></div></span></div><div><span style="font-family:Arial;font-size:14px;line-height:normal;color:rgb(0,0,0)"><span style="color:rgb(102,102,102);font-family:system-ui,sans-serif;background-color:rgb(255,255,255)"><font face="Arial"><span style="background-color:rgb(255,255,255);display:inline"><span><span style="background-color:rgb(255,255,255);display:inline">   <span> </span></span>"<span>ASubclassOne</span> implementation"</span></span></font></span></span></div></blockquote><div><span style="font-family:Arial;font-size:14px;line-height:normal;color:rgb(0,0,0)">​I want to move "AClass" <span style="background-color:rgb(255,255,255);display:inline">implementation of</span> "aMessage" to all subclasses that don't have it implemented allready (without overwriting). Furthermore, instead of removing "<span style="background-color:rgb(255,255,255);display:inline">aMessage" from </span></span><span>​"<span style="font-family:Arial;background-color:rgb(255,255,255);display:inline">AClass", I want to change it to:</span></span><font face="Arial"><span style="display:inline"><span><br></span></span></font></div><blockquote style="border-left:3px solid rgb(200,200,200);border-top-color:rgb(200,200,200);border-right-color:rgb(200,200,200);border-bottom-color:rgb(200,200,200);padding-left:10px;color:rgb(102,102,102)"><div><span><span style="font-family:Arial;background-color:rgb(255,255,255);display:inline"><div style="font-family:system-ui,sans-serif;background-color:rgb(255,255,255)"><span style="font-family:Arial;line-height:normal;color:rgb(0,0,0)"><span style="color:rgb(102,102,102);font-family:system-ui,sans-serif;background-color:rgb(255,255,255)"><font face="Arial"><span style="background-color:rgb(255,255,255);display:inline"><span>aMessage</span></span></font></span><div style="color:rgb(102,102,102);font-family:system-ui,sans-serif;background-color:rgb(255,255,255)"><font face="Arial"><span style="background-color:rgb(255,255,255);display:inline"><div><br></div></span></font></div></span></div></span></span></div><div><span><span style="font-family:Arial;background-color:rgb(255,255,255);display:inline"><span style="font-family:system-ui,sans-serif;background-color:rgb(255,255,255)"><span style="font-family:Arial;line-height:normal;color:rgb(0,0,0)"><span style="color:rgb(102,102,102);font-family:system-ui,sans-serif;background-color:rgb(255,255,255)"><font face="Arial"><span style="background-color:rgb(255,255,255);display:inline"><span><span style="background-color:rgb(255,255,255);display:inline">   <span> <span>self subclassResponsibility.</span></span></span></span></span></font></span></span></span><br></span></span></div></blockquote><div><span style="font-family:Arial;font-size:14px;line-height:normal;color:rgb(0,0,0)">​</span><span><span style="display:inline"><span><span><span><font face="Arial"><span style="display:inline"><span><span style="display:inline"><span><span><br></span></span></span></span></span></font></span></span></span></span></span></div></div><div style="font-family:Arial;font-size:14px">I propose Push Down has options for this alternative behaviour. I implemented a demonstration adding the option "Push Down 2.0" in method refactoring options. To reproduce the behaviour described previously, the changes file must be imported, then right click on "aMessage" in "AClass", in refactorings click on Push Down 2.0, then "Preserve" and then "Yes, clean it". This implementation also works for messages with parameters, as "aMessage:".</div><div style="font-family:Arial;font-size:14px"><br></div><div style="font-family:Arial;font-size:14px">I'm looking forward for your feedback. Also, I would like to know where <span style="background-color:rgb(255,255,255);display:inline">tests </span>should  go, as I wasn't able to find any testcases for the other refactors to use as reference.</div><div style="font-family:Arial;font-size:14px"><br></div><div style="font-family:Arial;font-size:14px">Thank you for your time,</div><div style="font-family:Arial;font-size:14px"><br></div><div style="font-family:Arial;font-size:14px">Patricio Tourne Passarino</div>
-- <br>
Cuis-dev mailing list<br>
<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
<a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div style="font-size:small"><div dir="ltr"><div dir="ltr"><div style="font-size:12.8px"><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal"><span style="font-weight:bold">Hernán Wilkinson</span><br>Agile Software Development, Teaching & Coaching</span></font></span></span></strong></span></div><div style="font-size:12.8px"><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">Phone: +54-011</span></font></span></span></strong></span><font face="tahoma, sans-serif" size="2">-4893-2057</font></div><div style="font-size:12.8px"><strong style="font-family:tahoma,sans-serif;font-size:xx-small"><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">Twitter: @HernanWilkinson</span></font></span></span></strong></div><div style="font-size:12.8px"><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">site: <a href="http://www.10pines.com/" style="color:rgb(17,65,112)" target="_blank">http://www.10Pines.com</a></span></font></span></span></strong></span></div><div style="font-size:12.8px"><font face="tahoma, sans-serif"><span style="border-collapse:collapse">Address: Alem 896</span></font>, Floor 6, Buenos Aires, Argentina</div></div></div></div></div></div></div></div>