summaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core
diff options
context:
space:
mode:
authormkersten <mkersten>2003-02-18 09:23:58 +0000
committermkersten <mkersten>2003-02-18 09:23:58 +0000
commit32a7e80fac54b553e98e5049e9f9f5b8bb765a60 (patch)
tree001112385a72b41c9751f2625ea8bab93b582304 /org.aspectj.ajdt.core
parentab6b18d68794cfee99eaf1f2a914c501eb596f9d (diff)
downloadaspectj-32a7e80fac54b553e98e5049e9f9f5b8bb765a60.tar.gz
aspectj-32a7e80fac54b553e98e5049e9f9f5b8bb765a60.zip
Fixed source line mapping errors.
Fixed formatting of pointcuts. Added a few more tests for above.
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmBuilder.java24
1 files changed, 19 insertions, 5 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmBuilder.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmBuilder.java
index e705748f2..83be0af50 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmBuilder.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmBuilder.java
@@ -14,6 +14,7 @@
package org.aspectj.ajdt.internal.core.builder;
import java.io.File;
+import java.io.IOException;
import java.text.CollationElementIterator;
import java.util.*;
import java.util.List;
@@ -91,10 +92,12 @@ public class AsmBuilder extends AbstractSyntaxTreeVisitorAdapter {
stack.push(cuNode);
unit.traverse(this, unit.scope);
- StructureModelManager.INSTANCE.getStructureModel().getFileMap().put(
- file.getAbsolutePath().replace('\\', '/'),
- cuNode
- );
+ try {
+ StructureModelManager.INSTANCE.getStructureModel().getFileMap().put(
+ file.getCanonicalPath(),//.replace('\\', '/'),
+ cuNode
+ );
+ } catch (IOException ioe) { }
// if (currImports != null) peNode.addChild(0, currImports);
// currImports = null;
}
@@ -205,6 +208,7 @@ public class AsmBuilder extends AbstractSyntaxTreeVisitorAdapter {
label = translateAdviceName(label);
} else if (methodDeclaration instanceof PointcutDeclaration) {
kind = ProgramElementNode.Kind.POINTCUT;
+ label = translatePointcutName(label);
} else if (methodDeclaration instanceof DeclareDeclaration) {
DeclareDeclaration declare = (DeclareDeclaration)methodDeclaration;
label = translateDeclareName(declare.toString());
@@ -240,7 +244,6 @@ public class AsmBuilder extends AbstractSyntaxTreeVisitorAdapter {
return true;
}
-
public void endVisit(MethodDeclaration methodDeclaration, ClassScope scope) {
stack.pop();
}
@@ -373,4 +376,15 @@ public class AsmBuilder extends AbstractSyntaxTreeVisitorAdapter {
}
}
+ // !!! move or replace
+ private String translatePointcutName(String name) {
+ int index = name.indexOf("$$")+2;
+ int endIndex = name.lastIndexOf('$');
+ if (index != -1 && endIndex != -1) {
+ return name.substring(index, endIndex);
+ } else {
+ return name;
+ }
+ }
+
}