Quellcode durchsuchen

Fudge for getSourceLocation to give as much of a

clue as possible about the real identity of the file.
tags/V_1_1_b5
acolyer vor 21 Jahren
Ursprung
Commit
62ac77ecb9
1 geänderte Dateien mit 17 neuen und 1 gelöschten Zeilen
  1. 17
    1
      weaver/src/org/aspectj/weaver/bcel/BcelShadow.java

+ 17
- 1
weaver/src/org/aspectj/weaver/bcel/BcelShadow.java Datei anzeigen

@@ -1868,7 +1868,23 @@ public class BcelShadow extends Shadow {
}
public SourceLocation getSourceLocation() {
return new SourceLocation(new File(getEnclosingClass().getFileName()), getSourceLine());
// AMC - a temporary "fudge" to give as much information as possible about the identity of the
// source file this source location points to.
String internalClassName = getEnclosingClass().getInternalClassName();
String fileName = getEnclosingClass().getFileName();
String extension = fileName.substring( fileName.lastIndexOf("."), fileName.length());
String filePrefix = fileName.substring( 0, fileName.lastIndexOf("."));
// internal class name is e.g. figures/Point, we don't know whether the file was
// .aj or .java so we put it together with the file extension of the enclosing class
// BUT... sometimes internalClassName is a different class (an aspect), so we only use it if it
// matches the file name.
String mostAccurateFileNameGuess;
if ( internalClassName.endsWith(filePrefix)) {
mostAccurateFileNameGuess = internalClassName + extension;
} else {
mostAccurateFileNameGuess = fileName;
}
return new SourceLocation(new File(mostAccurateFileNameGuess), getSourceLine());
}

public Shadow getEnclosingShadow() {

Laden…
Abbrechen
Speichern