Categorías
Java Development Tools (JDT)

Agregar comentarios usando Eclipse JDT ASTRewrite

Este ejemplo de código pertenece a la serie de tutoriales Eclipse JDT.

El objetivo de este ejemplo de código es agregar un comentario al siguiente código.

public class Main {
	public static void main(String[] args) {
		int i = 1;
		System.out.println(i);
	}
	public static void add() {
		int i = 1;
		System.out.println(i);
	}
}

Después de agregar un comentario antes de la primera declaración del primer método, se convierte en lo siguiente:

public class Main {
	public static void main(String[] args) {
		//mycomment
		int i = 1;
		System.out.println(i);
	}
	public static void add() {
		int i = 1;
		System.out.println(i);
	}
}

Para agregar un comentario al código fuente de Java, necesitamos usar ASTRewrite. El tutorial de la guía del programador de eclipse no funciona. La razón principal falta en la siguiente declaración:

unit.getBuffer().setContents(document.get());

Aquí está el código de trabajo probado bajo Eclipse Indigo.

private void AddComments() throws MalformedTreeException, BadLocationException, CoreException {
 
	IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("testAddComments");
	IJavaProject javaProject = JavaCore.create(project);
	IPackageFragment package1 = javaProject.getPackageFragments()[0];
 
	//get first compilation unit
	ICompilationUnit unit = package1.getCompilationUnits()[0];
 
	// parse compilation unit
	CompilationUnit astRoot = parse(unit);
 
	//create a ASTRewrite
	AST ast = astRoot.getAST();
	ASTRewrite rewriter = ASTRewrite.create(ast);
 
	//for getting insertion position
	TypeDeclaration typeDecl = (TypeDeclaration) astRoot.types().get(0);
	MethodDeclaration methodDecl = typeDecl.getMethods()[0];
	Block block = methodDecl.getBody();
 
	ListRewrite listRewrite = rewriter.getListRewrite(block, Block.STATEMENTS_PROPERTY);
	Statement placeHolder = (Statement) rewriter.createStringPlaceholder("//mycomment", ASTNode.EMPTY_STATEMENT);
	listRewrite.insertFirst(placeHolder, null);
 
	TextEdit edits = rewriter.rewriteAST();
 
	// apply the text edits to the compilation unit
	Document document = new Document(unit.getSource());
 
	edits.apply(document);
 
	// this is the code for adding statements
	unit.getBuffer().setContents(document.get());
 
	System.out.println("done");
}
  Tutoriales de Eclipse JDT

# No es necesario ejecutar el código anterior dentro de un proyecto de complemento de eclipse, pero es más fácil hacerlo.

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *