[forge-dev] JavaType vs JavaSource

Antonio Goncalves antonio.mailing at gmail.com
Sat Mar 14 05:41:13 EDT 2015


What do you mean by "compiled java type" ? Something like java.lang.String
because it's in the rt.jar and you don't have the sources ? Because most of
the visitors "visit our code" (i.e. the code in the project we are
generating to with Forge). So that would mean that most of the visistors
should then use JavaSource ?

And in terms of performance, is there a difference ? Is it "faster" to
parse source code rather then byte code ?

Antonio

2015-03-13 23:16 GMT+01:00 George Gastaldi <ggastald at redhat.com>:

> IMHO, there is a minor difference that may explain it. JavaType should be
> used when the object might be a compiled java type vs when you have the
> source code of a Java type (JavaSource). In practice they don't differ much
> but afaik this was the main difference.
>
> PS: Roaster does not support parsing of compiled java types yet, but the
> model is ready for this feature when it becomes available.
>
>
>
> Em 13/03/2015, às 18:19, Antonio Goncalves <antonio.mailing at gmail.com>
> escreveu:
>
> Hi all,
>
> I am having a look at some code and realize that I don't understand the
> subtle difference between JavaType and JavaSource in certain cases. In
> some visitor code (see below), I see :
>
> JavaType<?> javaType = resource.getJavaType();
>
> And other times I see :
>
> JavaSource<?> javaSource = javaResource.getJavaType();
>
> So I look at the code. JavaSource extends from JavaType, adds one method,
> and then they both implement similar interfaces (JavaDocCapable vs
> JavaDocCapableSource).
>
> So, in the following example, why use JavaSource instead of JavaType ?
>
> Thanks
> Antonio
>
>  @Override
>             public void visit(VisitContext context, JavaResource resource)
>             {
>                try
>                {
>                   *JavaType<?> javaType = resource.getJavaType();*
>                   if (javaType.isClass() &&
> !javaType.hasAnnotation(Entity.class)
> javaSource.hasAnnotation(MappedSuperclass.class))
>                   {
>                      classes.add(resource);
>                   }
>                }
>                catch (FileNotFoundException e)
>                {
>                   // ignore
>                }
>             }
>
>
> --
> Antonio Goncalves
> Software architect and Java Champion
>
> Web site <http://www.antoniogoncalves.org/> | Twitter
> <http://twitter.com/agoncal> | LinkedIn
> <http://www.linkedin.com/in/agoncal> | Paris JUG
> <http://www.parisjug.org/> | Devoxx France <http://www.devoxx.fr/>
>
> _______________________________________________
> forge-dev mailing list
> forge-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
> _______________________________________________
> forge-dev mailing list
> forge-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev
>



-- 
Antonio Goncalves
Software architect and Java Champion

Web site <http://www.antoniogoncalves.org/> | Twitter
<http://twitter.com/agoncal> | LinkedIn <http://www.linkedin.com/in/agoncal>
 | Paris JUG <http://www.parisjug.org/> | Devoxx France
<http://www.devoxx.fr/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20150314/28a11234/attachment.html 


More information about the forge-dev mailing list