I don't know of any, Stuart or others may have some thoughts though.<br><br><div class="gmail_quote">On Tue, Dec 6, 2011 at 12:13, José Rodolfo Freitas <span dir="ltr"><<a href="mailto:joserodolfo.freitas@gmail.com">joserodolfo.freitas@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hey guys, how you doing?<div><br></div><div><div>I'm trying to achieve something that might be impossible, but before concluding that, I'd like to ask you, CDI gurus!</div>
<div><br></div><div>I have the following class:</div>
<div><br></div><div>public class Foo<T> {</div><div><br></div><div> public TypedQuery<T> getQuery(){</div><div><br></div><div> }</div><div><br></div><div>}</div><div><br></div><div>As you can Imagine, inside my getQuery method, I'd have to use "T.class" to make it TypedQuery. which is impossible due java generics type erasure.</div>
<div><br></div><div>so I'd have to build a private field to hold the t.class for me.</div><div><br></div><div><div>public class Foo<T> {</div><div><br></div><div> private Class<T> klass;</div><div><br>
</div>
<div> public TypedQuery<T> getQuery(){</div><div><br></div><div> }</div><div> </div><div> public void setKlass(Class<T> klass){</div><div> this.klass = klass;</div><div> }</div><div>}</div>
</div><div><br></div><div>The problem is that forcing this 'setKlass' feels very ugly to the api, and it's not very error prone, since one could easily forget to set this configuration.</div><div><br></div><div>
So I had an Idea: force the setKlass inside the constructor:</div><div><br></div><div><div>public class Foo<T> {</div><div><br></div><div> private Class<T> klass;</div><div> </div><div> public Foo(Class<T> klass){</div>
<div> this.klass = klass;</div><div> }</div><div><br></div><div> public TypedQuery<T> getQuery(){</div><div><br></div><div> }</div><div><br></div><div>}</div></div><div><br></div><div>Unfortunatelly, this breaks cdi, since it cannot inject it anymore. At least AFAIK.</div>
<div><br></div><div>So, is there a way out of this? maybe using a secret solder feature?</div></div>
<br>_______________________________________________<br>
seam-dev mailing list<br>
<a href="mailto:seam-dev@lists.jboss.org">seam-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/seam-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/seam-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Jason Porter<br><a href="http://lightguard-jp.blogspot.com" target="_blank">http://lightguard-jp.blogspot.com</a><br><a href="http://twitter.com/lightguardjp" target="_blank">http://twitter.com/lightguardjp</a><br>
<br>Software Engineer<br>Open Source Advocate<br>Author of Seam Catch - Next Generation Java Exception Handling<br><br>PGP key id: 926CCFF5<br>PGP key available at: <a href="http://keyserver.net" target="_blank">keyserver.net</a>, <a href="http://pgp.mit.edu" target="_blank">pgp.mit.edu</a><br>