2016-06-29 9 views
0

Es ist ziemlich einfach, @Image eines Pfades mit einer statischen Zeichenkette zu vergleichen, aber wie man 2 Pfade '@ Image vergleicht?PMD Xpath, wie zu vergleichen 2 @Image?

-Code, der die Regel ausgelöst werden soll:

public class Foo implements { 
     public String checkDBConnexion() { 
     try { 
      int result = jdbcTemplate.queryForObject("SELECT 1 FROM dual ", Integer.class); 

     } catch (DataAccessException e) { 
      // This is Ok : throw new MyException(test, e); 
      // this is not : hrow new MyException(test); 
      // This is also not ok if there are no thrown; 
      return "KO : " + e.getMessage(); 
     } 
    } 
} 

Xpath für die param name des Catch-Block:

//CatchStatement[//FormalParameter//VariableDeclaratorId] 

Xpath für den Variablennamen des geworfenen Methode:

//ThrowStatement//Arguments//Expression//Name 

Es ist einfach, beide mit 'e' zu vergleichen:

//CatchStatement[//FormalParameter//VariableDeclaratorId[@Image = 'e']] 

//CatchStatement[//ThrowStatement//Arguments//Expression//Name[@Image = 'e']] 

Wie kann ich sie miteinander vergleichen?

Auch wenn Sie einen Link mit detailliertem PMD XPath Synthax haben. Der Grund PMD Seite hat ... auch der Grund;)

Antwort

0

selbst beantworten:

//CatchStatement[//FormalParameter//VariableDeclaratorId/@Image = 
//ThrowStatement//Arguments//Expression//Name/@Image]