code: private static void traverseNode(final Node node, final Set<String> params) {
  		if (node instanceof BindVariableNode) {
  			params.add(((BindVariableNode) node).getExpression());
  		} else if (node instanceof ParenBindVariableNode) {
  			params.add(((ParenBindVariableNode) node).getExpression());
  		} else if (node instanceof EmbeddedValueNode) {
  			params.add(((EmbeddedValueNode) node).getExpression());
  		} else if (node instanceof IfNode) {
  			try {
  				String expression = ((IfNode) node).getExpression();
  				ognl.Node ognlNode = (ognl.Node) Ognl.parseExpression(expression);
  				traverseExpression(ognlNode, params);
  			} catch (OgnlException e) {
  				e.printStackTrace();
  			}
  		}
  
  		for (int i = 0; i < node.getChildSize(); i++) {
  			Node childNode = node.getChild(i);
  			traverseNode(childNode, params);
  		}
  	}
docs: SQLの探索
  
  @param node SQLノード
  @param params パラメータが見つかった場合に格納するSetオブジェクト