J'essaie de modifier la source java de mon plugin eclipse. J'ai référé quelques tutoriels pour cela et fait ce codage. Quand j'essaye ce code en utilisant les classes ASTVisitor et ASTRewrite. Le flux de code se casse lorsque ce code est placé. Si je supprime le code à l'intérieur de ce bloc, le plugin fonctionne.Comment modifier le code source en utilisant JDT?
Mon intention est de supprimer un nœud dit Annotaion du code source. Veuillez m'aider dans ceci. Merci pour l'aide à l'avance.
@Override
public boolean visit(SingleMemberAnnotation node) {
ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager();
IPath iPath = javaUnit.getPath();
try {
bufferManager.connect(iPath, null);
ITextFileBuffer textFileBuffer = bufferManager.getTextFileBuffer(iPath);
IDocument document = textFileBuffer.getDocument();
AST ast= node.getAST();
SingleMemberAnnotation singleMemberAnnotation = ast.newSingleMemberAnnotation();
singleMemberAnnotation.delete();
textFileBuffer
.commit(null , true);
} catch (CoreException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
finally
{
try {
bufferManager.disconnect(iPath, null);
} catch (CoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
TextEdit textEdit = null;
System.out.println("E");
try {
textEdit = rewrite.rewriteAST(new Document(javaUnit.getSource()),null);
} catch (JavaModelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
textEdit.apply(new Document(javaUnit.getSource()));
} catch (MalformedTreeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JavaModelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return super.visit(node);
}