<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-5265194643022445353.post3188114130220137312..comments</id><updated>2008-04-27T22:10:32.487-07:00</updated><title type='text'>Comments on Imran's Tech Blog: Code generation made easy using patterns</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://imyousuf-tech.blogs.smartitengineering.com/feeds/3188114130220137312/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5265194643022445353/3188114130220137312/comments/default'/><link rel='alternate' type='text/html' href='http://imyousuf-tech.blogs.smartitengineering.com/2008/04/code-generation-made-easy-using.html'/><author><name>imyousuf</name><uri>http://www.blogger.com/profile/05717111835467977502</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5265194643022445353.post-2003392412710286521</id><published>2008-04-27T22:10:32.487-07:00</published><updated>2008-04-27T22:10:32.487-07:00</updated><title type='text'>For controlling where to generate logs I will also...</title><content type='html'>For controlling where to generate logs I will also add UI to it so that user can select and unselect options also user will have option to remove all logs.&lt;BR/&gt;&lt;BR/&gt;The reason for not using annotation was I want the user to be able to see the logs before compilation and add, remove, edit them as per his/her choice.&lt;BR/&gt;&lt;BR/&gt;Visitor pattern is good but not sufficient for my purpose. Because not only do I need to change a statement but I also need to make changes to the block/statement and for that I will need to the tree hierarchy that I am parsing. With Visitor it is possible to build the tree but in order to remove nodes from the tree it falls short(that is only have the tree path for/up-to the current node only). The aim of my work is to provide an API for code generation/modification where user has to do minimal work.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5265194643022445353/3188114130220137312/comments/default/2003392412710286521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5265194643022445353/3188114130220137312/comments/default/2003392412710286521'/><link rel='alternate' type='text/html' href='http://imyousuf-tech.blogs.smartitengineering.com/2008/04/code-generation-made-easy-using.html?showComment=1209359432487#c2003392412710286521' title=''/><author><name>imyousuf</name><uri>http://www.blogger.com/profile/05717111835467977502</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03553396411277564090'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://imyousuf-tech.blogs.smartitengineering.com/2008/04/code-generation-made-easy-using.html' ref='tag:blogger.com,1999:blog-5265194643022445353.post-3188114130220137312' source='http://www.blogger.com/feeds/5265194643022445353/posts/default/3188114130220137312' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5265194643022445353.post-5988760167059757091</id><published>2008-04-25T11:10:44.721-07:00</published><updated>2008-04-25T11:10:44.721-07:00</updated><title type='text'>nice works, [i am pretending, this code generation...</title><content type='html'>nice works, &lt;BR/&gt;[i am pretending, this code generation is for generating dynamic code on my source files]&lt;BR/&gt;since java supports source level annotation processor, i mean annotation which you can parse later. so how about if i wrote the following code - &lt;BR/&gt;&lt;BR/&gt;@GenerateLogger(...some properties...)&lt;BR/&gt;class Bang { }&lt;BR/&gt;&lt;BR/&gt;so i might have better control over auto generation.&lt;BR/&gt;anyway i think probable you have  already implemented this stuff. &lt;BR/&gt;&lt;BR/&gt;not sure, but probable class tree or this class by default supports visitor pattern. may be i saw in annotation processor code.&lt;BR/&gt;&lt;BR/&gt;best wishes,</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5265194643022445353/3188114130220137312/comments/default/5988760167059757091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5265194643022445353/3188114130220137312/comments/default/5988760167059757091'/><link rel='alternate' type='text/html' href='http://imyousuf-tech.blogs.smartitengineering.com/2008/04/code-generation-made-easy-using.html?showComment=1209147044721#c5988760167059757091' title=''/><author><name>nhm tanveer hossain khan (hasan)</name><uri>http://hasan.we4tech.com</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://imyousuf-tech.blogs.smartitengineering.com/2008/04/code-generation-made-easy-using.html' ref='tag:blogger.com,1999:blog-5265194643022445353.post-3188114130220137312' source='http://www.blogger.com/feeds/5265194643022445353/posts/default/3188114130220137312' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5265194643022445353.post-8721100925542125741</id><published>2008-04-20T20:28:49.553-07:00</published><updated>2008-04-20T20:28:49.553-07:00</updated><title type='text'>Firstly, I wanted to abstract walking the tree par...</title><content type='html'>Firstly, I wanted to abstract walking the tree part and thus I did not mention it :). Currently I am using Delegator pattern coupled with DFS.&lt;BR/&gt;&lt;BR/&gt;But yes, TreeVisitor also could be used, I did not take that approach, may be in version 2 :).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5265194643022445353/3188114130220137312/comments/default/8721100925542125741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5265194643022445353/3188114130220137312/comments/default/8721100925542125741'/><link rel='alternate' type='text/html' href='http://imyousuf-tech.blogs.smartitengineering.com/2008/04/code-generation-made-easy-using.html?showComment=1208748529553#c8721100925542125741' title=''/><author><name>imyousuf</name><uri>http://www.blogger.com/profile/05717111835467977502</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03553396411277564090'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://imyousuf-tech.blogs.smartitengineering.com/2008/04/code-generation-made-easy-using.html' ref='tag:blogger.com,1999:blog-5265194643022445353.post-3188114130220137312' source='http://www.blogger.com/feeds/5265194643022445353/posts/default/3188114130220137312' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5265194643022445353.post-8051930707375808052</id><published>2008-04-20T20:18:30.175-07:00</published><updated>2008-04-20T20:18:30.175-07:00</updated><title type='text'>is it possible you could have used the visitor pat...</title><content type='html'>is it possible you could have used the visitor pattern to walk the tree :)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5265194643022445353/3188114130220137312/comments/default/8051930707375808052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5265194643022445353/3188114130220137312/comments/default/8051930707375808052'/><link rel='alternate' type='text/html' href='http://imyousuf-tech.blogs.smartitengineering.com/2008/04/code-generation-made-easy-using.html?showComment=1208747910175#c8051930707375808052' title=''/><author><name>Shams</name><uri>http://www.blogger.com/profile/10301627897367423203</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://imyousuf-tech.blogs.smartitengineering.com/2008/04/code-generation-made-easy-using.html' ref='tag:blogger.com,1999:blog-5265194643022445353.post-3188114130220137312' source='http://www.blogger.com/feeds/5265194643022445353/posts/default/3188114130220137312' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5265194643022445353.post-105042684123425602</id><published>2008-04-20T20:00:26.886-07:00</published><updated>2008-04-20T20:00:26.886-07:00</updated><title type='text'>Implementation for log injection before return and...</title><content type='html'>Implementation for log injection before return and throw statements is now available (&lt;A HREF="http://code.google.com/p/smart-codegen/source/detail?r=41" REL="nofollow"&gt;Revision 41&lt;/A&gt;).&lt;BR/&gt;&lt;BR/&gt;It requires minor change of removing old logs and adding the new ones; this feature will be added in a day or 2.&lt;BR/&gt;&lt;BR/&gt;We will also add logs to catch block.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5265194643022445353/3188114130220137312/comments/default/105042684123425602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5265194643022445353/3188114130220137312/comments/default/105042684123425602'/><link rel='alternate' type='text/html' href='http://imyousuf-tech.blogs.smartitengineering.com/2008/04/code-generation-made-easy-using.html?showComment=1208746826886#c105042684123425602' title=''/><author><name>imyousuf</name><uri>http://www.blogger.com/profile/05717111835467977502</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03553396411277564090'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://imyousuf-tech.blogs.smartitengineering.com/2008/04/code-generation-made-easy-using.html' ref='tag:blogger.com,1999:blog-5265194643022445353.post-3188114130220137312' source='http://www.blogger.com/feeds/5265194643022445353/posts/default/3188114130220137312' type='text/html'/></entry></feed>