このJavaソースコードがあるとしましょう。「extractedMethod(amount)」呼び出しのstartPositionと長さを取得するにはどうすればよいですか?
package smcho;
public class Extract {
String _name = "";
public int extractedMethod(int amount)
{
....
}
public int getValue(int amount) {
if (amount > 10) {
int z = extractedMethod(amount);
return z;
}
....
}
ヘキサビューアを使用して、開始位置が0x1FAで、長さがlen( "extracted(method)")== 17であることを確認できますが、JDTを使用してプログラムで実行したいと思います。
一度CompilationUnitを取得できましたが、そのCompilationUnitで呼び出し参照を取得する方法を知る必要があります。
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IProject orig = root.getProject(this.projectName);
orig.open(pm);
javaProject = JavaCore.create(orig);
IType type = this.javaProject.findType(this.className);
ICompilationUnit unit = type.getCompilationUnit();
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource(unit);
parser.setResolveBindings(true);
CompilationUnit cunit = (CompilationUnit) parser.createAST(null);
ASTNode root = parser.createAST(null);
root.accept(new ASTVisitor() {
public bool visit(...)
});