PMD rule

Fala galera, mais uma vez preciso de vocês.

Estou tentando criar rules para o PMD mas esta dificil navegar na AST!

Quero pegar o nome de variaveis locais e não consigo!

Parte da minha AST

...
                                <LocalVariableDeclaration abstract="false" array="false" arrayDepth="0" beginColumn="17" beginLine="8" endColumn="33" endLine="8" final="false" native="false" packagePrivate="true" private="false" protected="false" public="false" static="false" strictfp="false" synchronized="false" transient="false" volatile="false">
                                    <Type array="false" arrayDepth="0" beginColumn="17" beginLine="8" endColumn="19" endLine="8" typeImage="int">
                                        <PrimitiveType array="false" arrayDepth="0" beginColumn="17" beginLine="8" boolean="false" endColumn="19" endLine="8" image="int"/>
                                    </Type>
                                    <VariableDeclarator beginColumn="21" beginLine="8" endColumn="33" endLine="8">
                                        <VariableDeclaratorId array="false" arrayDepth="0" beginColumn="21" beginLine="8" endColumn="33" endLine="8" exceptionBlockParameter="false" image="variavelLocal" typeNameNode="PrimitiveType" typeNode="Type"/>
                                    </VariableDeclarator>
                                </LocalVariableDeclaration>
...

Codigo que eu escrevi mas da pau! Não consigo pegar os nos filhos!

package net.sourceforge.pmd.rules;

import net.sourceforge.pmd.AbstractRule;
import net.sourceforge.pmd.ast.ASTLocalVariableDeclaration;
import net.sourceforge.pmd.ast.ASTVariableDeclaratorId;

public class PatternLocalVariable extends AbstractRule {
	public Object visit(ASTLocalVariableDeclaration node, Object data){
		ASTVariableDeclaratorId node2 = (ASTVariableDeclaratorId) node.jjtGetChild(2).jjtGetChild(1);
		
		boolean paramCarac = node2.getImage().charAt(0) == '_';
		boolean localCarac = node2.getImage().charAt(node2.getImage().length()-1) == 'L';
		if((paramCarac) || (! localCarac))
			addViolation(data, node);
		
		return data;
	}

}

Se alguem puder ajudar!!!