Lincoln,

@deltaspike plugin, I have been making some kind of prototype that creates the correct files.  Now I need to make the checks and update files.  But your input is welcome.

@fix There are 2 options:
- Quick fix that just handles the main class and ignores nested classes
- Correct handling, but that needs a lot of refactoring to handle multiple classes per file.

For deltaspike, I was writing something based on the eclipse parser to have full access to everyhting.

Thus depends what forge project wants and I could try to help but have limited time.  We can discuss this maybe outside of this thread.

regards
Rudy

On 1 February 2012 21:24, Lincoln Baxter, III <lincolnbaxter@gmail.com> wrote:
Thanks. You are correct about this behavior. Now to find time to fix it! Is this something you might be able to help with?

I've been meaning to take a look at the deltaspike plugin. A test case would make this much easier to debug!

Thanks so much for finding this!
~Lincoln


On Wed, Feb 1, 2012 at 7:02 AM, Rudy De Busscher <rdebusscher@gmail.com> wrote:
Hi Lincoln,

see  https://issues.jboss.org/browse/FORGE-471 with a rather extended explanation.

Regards
Rudy


On 31 January 2012 18:50, Lincoln Baxter, III <lincolnbaxter@gmail.com> wrote:
Hi Rudy,

You're right: We don't yet have nested class support, and the top-level class is what should be returned, so I'm a bit surprised that this is what is happening. Do you know if this problem is caused by the JavaParser API or by the forge Resources API?

Care to file an issue? Thanks!

https://issues.jboss.org/browse/FORGE

~Lincoln

On Tue, Jan 31, 2012 at 10:06 AM, Rudy De Busscher <rdebusscher@gmail.com> wrote:
Hi All,

Seems that nested classes aren't handled correctly by forge.

If you have a java source file like this

public class CustomProjectStageHolder implements ProjectStageHolder
{
    public static final class CustomProjectStage extends ProjectStage
    {
        private static final long serialVersionUID = 1029094387976167179L;
    }

    public static final CustomProjectStage CustomProjectStage = new CustomProjectStage();
}

And consider then following statements:
JavaResource javaResource = factory.getResourceFrom(new File("/path/to/file/RudyHolder.java")).reify(JavaResource.class);
javaResource.getJavaSource().getQualifiedName();

The javaResource is indeed pointing to the file, you can verify with javaResource.getFullyQualifiedName()
But if you ask for the javaSource, as in the second statement, you get the nested class, CustomProjectStage in our example.

Relation between JavaResource and JavaSource indicates that multiple classes per java file wasn't considered.  And isn't common for entity classes etc that have to be handled by Forge.
So when there are no plans in supporting this in Forge, isn't it logic to return the main class, instead of the nested class?

Thx for the clarification.

Regards
Rudy

-- 
Rudy De Busscher
http://www.c4j.be


_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users




--
Lincoln Baxter, III
http://ocpsoft.com
http://scrumshark.com
"Keep it Simple"

_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users




--
Rudy De Busscher
http://www.c4j.be


_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users




--
Lincoln Baxter, III
http://ocpsoft.com
http://scrumshark.com
"Keep it Simple"

_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users




--
Rudy De Busscher
http://www.c4j.be