diff options
author | mkersten <mkersten> | 2003-02-18 09:23:58 +0000 |
---|---|---|
committer | mkersten <mkersten> | 2003-02-18 09:23:58 +0000 |
commit | 32a7e80fac54b553e98e5049e9f9f5b8bb765a60 (patch) | |
tree | 001112385a72b41c9751f2625ea8bab93b582304 /org.aspectj.ajdt.core | |
parent | ab6b18d68794cfee99eaf1f2a914c501eb596f9d (diff) | |
download | aspectj-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.java | 24 |
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; + } + } + } |