@Override
 public boolean visit(SwitchStatement node) {
   visitAndExtract(node.getExpression(), node);
   for (Statement stmt : node.getStatements()) {
     stmt.accept(this);
   }
   return false;
 }
 @Override
 public boolean visit(IfStatement node) {
   visitAndExtract(node.getExpression(), node);
   node.getThenStatement().accept(this);
   Statement elseStmt = node.getElseStatement();
   if (elseStmt != null) {
     elseStmt.accept(this);
   }
   return false;
 }