[forge-dev] [forge-users] Get a list of all classes extending a specific class

Rudy De Busscher rdebusscher at gmail.com
Thu Feb 2 04:09:55 EST 2012


Lincoln,

I created yesterday something simple

    public void visitSources(JavaSourceFacet facet, ClassVisitor visitor) {
        visitSources(facet.getSourceFolder(), visitor);
    }

    public void visitSources(Resource<?> searchFolder, final
JavaResourceVisitor visitor ) {
        if (searchFolder instanceof DirectoryResource) {

            searchFolder.listResources(new ResourceFilter() {
            @Override
            public boolean accept(Resource<?> resource) {
                if (resource instanceof DirectoryResource) {
                    visitSources(resource, visitor);
                }
                if (resource instanceof JavaResource) {
                    visitor.visit((JavaResource) resource);
                }

                return false;
            }
            });
        }
    }

public interface  JavaResourceVisitor  {

    void visit(JavaResource javaResource);
}


Regards
Rudy

On 1 February 2012 21:35, Lincoln Baxter, III <lincolnbaxter at gmail.com>wrote:

> Perhaps also a recursive flag.
>
>
> On Wed, Feb 1, 2012 at 3:35 PM, Lincoln Baxter, III <
> lincolnbaxter at gmail.com> wrote:
>
>> (Switching to Dev List)
>>
>> Hey Rudy,
>>
>> Awesome! I figure adding a new set of methods in the JavaSourceFacet
>> would do the trick... something like this:
>>
>> JavaSourceFacet java = project.getFacet(JavaSourceFacet.class);
>>>
>>> java.visitSources("com.base.package", new JavaSourceVisitor() {...});
>>> java.visitTestSourceTree("com.base.package", new JavaSourceVisitor()
>>> {...});
>>>
>>> java.visitSources(new JavaSourceVisitor() {
>>>    public void visit(VisitContext context, JavaSource source)   {
>>>
>>>        // to end the visit after this method returns, call this method
>>>
>>        context.visitComplete();
>>>
>>>    }
>>> } );
>>>
>>> java.visitTestSources(new JavaSourceVisitor() {
>>>    public void visit(VisitContext context, JavaSource source)   {
>>>        context.visitComplete();
>>>    }
>>> } );
>>>
>>
>> Thoughts?
>> ~Lincoln
>>
>>
>>
>>
>> On Wed, Feb 1, 2012 at 7:21 AM, Rudy De Busscher <rdebusscher at gmail.com>wrote:
>>
>>> I'll have try
>>>
>>> Rudy
>>>
>>>
>>> On 31 January 2012 19:01, Lincoln Baxter, III <lincolnbaxter at gmail.com>wrote:
>>>
>>>> Hi Rudy,
>>>>
>>>> Source scanning is on the list of things to implement in the
>>>> JavaSourceFacet, but unfortunately we don't have it yet. Actually, we could
>>>> use some help with this feature. Is that something you'd be interested in
>>>> creating, since you know what you need?
>>>>
>>>> https://issues.jboss.org/browse/FORGE-469
>>>>
>>>> There are methods called: javaClass.getSuperType() and getInterfaces()
>>>> that you can use, though, but there just isn't any way to walk over all
>>>> source files yet. Wouldn't be hard to implement!
>>>>
>>>> ~Lincoln
>>>>
>>>> On Tue, Jan 31, 2012 at 9:23 AM, Rudy De Busscher <
>>>> rdebusscher at gmail.com> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> For a plugin, I could use some functionality that scans the source
>>>>> directories and report me all the java classes that extend a certain class.
>>>>>
>>>>> But I couldn't find anything for that in Forge.
>>>>>
>>>>> Is there some way of getting the parent class ? (or do I have the
>>>>> 'parse' the source myself (find extend clause and see what come next))
>>>>>
>>>>> Thx
>>>>>
>>>>> Best regards
>>>>>
>>>>> --
>>>>> Rudy De Busscher
>>>>> http://www.c4j.be
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> forge-users mailing list
>>>>> forge-users at 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 at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/forge-users
>>>>
>>>>
>>>
>>>
>>> --
>>> Rudy De Busscher
>>> http://www.c4j.be
>>>
>>>
>>> _______________________________________________
>>> forge-users mailing list
>>> forge-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/forge-users
>>>
>>>
>>
>>
>> --
>> Lincoln Baxter, III
>> http://ocpsoft.com
>> http://scrumshark.com
>> "Keep it Simple"
>>
>
>
>
> --
> Lincoln Baxter, III
> http://ocpsoft.com
> http://scrumshark.com
> "Keep it Simple"
>



-- 
Rudy De Busscher
http://www.c4j.be
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20120202/9f93ceeb/attachment-0001.html 


More information about the forge-dev mailing list