Community
Participate
Working Groups
In the following aspect: public aspect Aspect { public void q2.ThisClass.something2() {} } In aspectJ, the ITD has the following handle identifier (notice that the ITD name is not fully qualified): =AspectJ Project/src2<p*Aspect.aj'Aspect)ThisClass.something2 However, it should be (with fully qualified name): =AspectJ Project/src2<p*Aspect.aj'Aspect)q2.ThisClass.something2 This means that fully qualified ITDs cannot be navigated to or searched. I'm a little surprised that this doesn't work because I thought I had tests for it...
This is becoming more important since searching for ITDs has become a required feature for 2.1.1
i changed some element name processing to make this work. If the new element names are too annoying (outline view?) then I will come up with another way to persist the data so it can be included in the handle. let me know
This appears to be working now. Thanks for the fix. A couple of things: 1. Yes, the fully qualified name appears in the outline view. There may be a way to control the name without having to fuss too much with the internal representation. For example, ProgramElement.toLinkLabel() returns the ITD with the simple name of the type. 2. The source location of the element appears to be off. Or at least when you navigate from the target type, the wrong location is highlighted. I have to track this down. It might be an AJDT problem.
#1 looks quite difficult to fix. The name in the outline view is generated from IJavaElement.getElementName(). This method is also called to generate the handle identifier. So, we can't fix one without breaking the other. Although, I'd prefer the name in the outline view to be nicer, I'm not too fussed about it. I'd rather all the other bits and pieces work.
#2 is now fixed. It was an AJDT issue.
please resynchronize. I changed it to do it another way, now the names remain short but the handle will include the fqname.
believed fixed