Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail From: sclaflin@webucator.com Newsgroups: comp.lang.java.programmer Subject: Re: Hairy generics question Date: Fri, 24 Feb 2012 11:12:05 -0800 (PST) Organization: http://groups.google.com Lines: 28 Message-ID: <29108397.63.1330110725245.JavaMail.geo-discussion-forums@vbpw21> References: <3c65271e-a388-49c9-bcc6-ca3bf274e74f@e27g2000vbu.googlegroups.com> NNTP-Posting-Host: 96.227.80.185 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1330111064 22600 127.0.0.1 (24 Feb 2012 19:17:44 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Fri, 24 Feb 2012 19:17:44 +0000 (UTC) In-Reply-To: <3c65271e-a388-49c9-bcc6-ca3bf274e74f@e27g2000vbu.googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=96.227.80.185; posting-account=SVWHxwoAAAAHgCbAu0-fW388NuDxpM9h User-Agent: G2/1.0 X-Google-Web-Client: true X-Received-Bytes: 2600 Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:12294 Well, after writing a long response addressing the more structure-related c= omments, my submission got lost in the ether. Suffice to say, I believe that the circularity is necessary at the deeper l= evels of my framework. My endpoint presenters act as widgets to the outsid= e world, where I have indeed removed most of the types, except the bean typ= e. But, any individual presenter is intimately tied to a view, since both = need to invoke specific methods on the other. Some views need to know P, an= d presenters need to know V. In order to have abstract base views and pres= enters, the self-parametrization arose - this is a presenter for V, but onl= y those V that support at least this P. Unfortunately, when I tried to come up with a reduced set of declarations t= o post, I oversimplified and left out some of the nested parametrization. = And, when I went to put those back in, I realized the issue. Once I lock i= n the base view, the V disappears. So, the real issue was not with the class that I found the error in, which = was trying to use CompItemView, but in CompItemView itself, when I left in = the V parameter. It should be: public class CompItemView< T extends CompInfo,=20 P extends AbstractCompItem>> extends AbstractCompItemView>=20 implements CompItemViewInterface> after removing the V from the CompItemView parametrization.