/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.plsql.dfa;
import java.util.ArrayList;
import java.util.List;
import net.sourceforge.pmd.lang.dfa.DFAGraphMethod;
import net.sourceforge.pmd.lang.dfa.DFAGraphRule;
import net.sourceforge.pmd.lang.plsql.ast.ASTInput;
import net.sourceforge.pmd.lang.plsql.ast.ASTProgramUnit;
import net.sourceforge.pmd.lang.plsql.ast.ASTTriggerTimingPointSection;
import net.sourceforge.pmd.lang.plsql.ast.ASTTriggerUnit;
import net.sourceforge.pmd.lang.plsql.ast.ASTTypeMethod;
import net.sourceforge.pmd.lang.plsql.rule.AbstractPLSQLRule;
public class DFAPLSQLGraphRule extends AbstractPLSQLRule implements DFAGraphRule {
private List<DFAGraphMethod> executables;
public DFAPLSQLGraphRule() {
super();
super.setUsesDFA();
}
public List<DFAGraphMethod> getMethods() {
return this.executables;
}
@Override
public Object visit(ASTTriggerUnit node, Object data) {
executables.add(node);
return super.visit(node, data);
}
@Override
public Object visit(ASTProgramUnit node, Object data) {
executables.add(node);
return super.visit(node, data);
}
@Override
public Object visit(ASTTypeMethod node, Object data) {
executables.add(node);
return super.visit(node, data);
}
@Override
public Object visit(ASTTriggerTimingPointSection node, Object data) {
executables.add(node);
return super.visit(node, data);
}
@Override
public Object visit(ASTInput acu, Object data) {
executables = new ArrayList<>();
return super.visit(acu, data);
}
}