<div dir="ltr"><div class="gmail_extra"><div><div>Hi all,</div><div><br></div><div>I am having a look at some code and realize that I don&#39;t understand the subtle difference between <font face="monospace, monospace">JavaType</font> and <font face="monospace, monospace">JavaSource</font> in certain cases. In some visitor code (see below), I see :</div><div><br></div><div><font face="monospace, monospace">JavaType&lt;?&gt; javaType = resource.getJavaType();<br></font></div><div><br></div><div>And other times I see :</div><div><br></div><div><font face="monospace, monospace">JavaSource&lt;?&gt; javaSource = javaResource.getJavaType();<br></font></div><div><br></div><div>So I look at the code. <font face="monospace, monospace">JavaSource</font> extends from <font face="monospace, monospace">JavaType</font>, adds one method, and then they both implement similar interfaces (<font face="monospace, monospace">JavaDocCapable</font> vs <font face="monospace, monospace">JavaDocCapableSource</font>).</div><div><br></div><div>So, in the following example, why use <font face="monospace, monospace">JavaSource</font> instead of <font face="monospace, monospace">JavaType</font> ?</div><div><br></div><div>Thanks</div><div>Antonio</div><div><br></div><div><font face="monospace, monospace"> @Override</font></div><div><font face="monospace, monospace">            public void visit(VisitContext context, JavaResource resource)</font></div><div><font face="monospace, monospace">            {</font></div><div><font face="monospace, monospace">               try</font></div><div><font face="monospace, monospace">               {</font></div><div><font face="monospace, monospace">                  <b><font color="#ff0000">JavaType&lt;?&gt; javaType = resource.getJavaType();</font></b></font></div><div><font face="monospace, monospace">                  if (javaType.isClass() &amp;&amp; !javaType.hasAnnotation(Entity.class) javaSource.hasAnnotation(MappedSuperclass.class))</font></div><div><font face="monospace, monospace">                  {</font></div><div><font face="monospace, monospace">                     classes.add(resource);</font></div><div><font face="monospace, monospace">                  }</font></div><div><font face="monospace, monospace">               }</font></div><div><font face="monospace, monospace">               catch (FileNotFoundException e)</font></div><div><font face="monospace, monospace">               {</font></div><div><font face="monospace, monospace">                  // ignore</font></div><div><font face="monospace, monospace">               }</font></div><div><font face="monospace, monospace">            }</font></div></div><div><br></div><div><br></div>-- <br><div class="gmail_signature">Antonio Goncalves <br>Software architect and Java Champion<br><br><a href="http://www.antoniogoncalves.org/" target="_blank">Web site</a> | <a href="http://twitter.com/agoncal" target="_blank">Twitter</a> | <a href="http://www.linkedin.com/in/agoncal" target="_blank">LinkedIn</a> | <a href="http://www.parisjug.org/" target="_blank">Paris JUG</a> | <a href="http://www.devoxx.fr/" target="_blank">Devoxx France</a></div>
</div></div>