[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-dev] DOMs and ASTs (for metrics tool purpose)
|
On Thu, Mar 31, 2005 at 09:02:36AM -0800, Mik Kersten wrote:
> Nice work on figuring this out and stating your needs clearly--all of your
> conclusions are correct. While the ASM may be a convenient way of getting
> some of your metrics, you'll need to tie into the AST visitor mechanism to
> get finer-grained information. You can do that in the exact same way that
> the ASM does, by extending the AsmHierarchyBuilder which is a subclass of
> the ASTVisitor that we get from the JDT. For any additional information
> that you need to collect you simply add the corresponding visit(..) method.
> For example, to collect method calls you could do the following:
>
> class ExtendedAsmHiearchyBuilder extends AsmHierarchyBuilder {
> public boolean visit(MessageSend messageSend, BlockScope scope) {
> // do something interesting with calls...
> }
> public void endVisit(MessageSend messageSend, BlockScope scope) {
> stack.pop();
> }
> }
>
> And register your custom builder by overriding the default one:
> AjBuildManager.setAsmHierarchyBuilder(new ExtendedAsmHierarchyBuilder());
>
> I've put an example test into org.aspectj/docs/sandbox/api-clients which you
> should check out as a project. If you run
> org.aspectj.samples.AsmHierarchyBuilderExtensionTest as a JUnit test you'll
> notice that it outputs information about call sites.
Thank you for the reply. At the moment I extracted the test case to
own project and manage to run it without all depended ajdt projects.
And it works! :) I think this will do the work. Thank you, again.
> Happy hacking,
:) ...
btw. Will ajdt be integrated with jdt java models? Many plugins
works on it. Having ajdt extension, with small efforts those plugins
could be extended for AspectJ support...
best regards,
--
Michal Stochmialek <misto@xxxxxxxxxxxxxxxx>