Este tutorial pertenece a Eclipse JDT Tutorial Series.
Dado un método, es posible que deseemos un recuento del número de declaraciones en el método (por ejemplo: para medir la complejidad del método). Podemos usar eclipse JDT ASTParser para hacer este trabajo.
Una forma aproximada de contar el número de declaraciones en un método es contar el número de líneas que terminan con punto y coma junto con líneas que contienen las palabras «si / para / mientras /».
En esta publicación, explicaré una técnica para contar el número de declaraciones de una manera más precisa utilizando el paradigma de visitante de eclipse jdt. Esta publicación anterior trata sobre cómo trabaja el visitante.
Este ejemplo demuestra el uso de la visita y la visita final para capturar lo que sucede entre la visita y la visita final.
Básicamente, inicializamos un campo, el recuento de declaraciones a 0 en la visita de una declaración de método, incrementamos este campo en cada visita de declaraciones como la declaración If, la declaración de retorno, etc. Finalmente, cuando se llama a la visita final de la declaración del método, tenemos un recuento de las declaraciones en el método.
public boolean visit(MethodDeclaration md) { // initialize the field to 0 m_nStatementCount = 0; return true; } public void endVisit(MethodDeclaration md) { System.out.println("Statement count for method" + md.getName().getFullyQualifiedName() + + m_nStatementCount); } // the visitors below increment the statement count field public boolean visit (ReturnStatement node) { m_nStatementCount++; return true; } public boolean visit (ExpressionStatement node) { m_nStatementCount++; return true; } public boolean visit (IfStatement node) { m_nStatementCount++; return true; } //and so on for other subclasses of Statement.* |
* Tienes que escribir el código anterior para cada una de las subclases de Statement
descrito en help.eclipse.org.
Nota: no existe un método de visita que tome un objeto Statement como parámetro; de lo contrario, podríamos haber tenido uno de esos métodos de visita en el que se incrementa el recuento.
Para obtener una vista completa de cómo funciona todo el método, vaya a una publicación anterior aquí.