You must add your own Java code to this class to do the analysis that is required by your custom rule.
// The package name is set to the package-name portion of analysisRule.ruleclass
package com.example;
import java.util.ArrayList;
import java.util.List;
import com.ibm.etools.cobol.application.model.cobol.*;
import com.ibm.rsar.analysis.codereview.cobol.custom.rules.AbstractCustomCobolAnalysisRule;
import com.ibm.rsar.analysis.codereview.cobol.custom.model.util.*;
// The class name is set to the class-name portion of analysisRule.ruleclass
public class CobolRule extends
AbstractCustomCobolAnalysisRule {
@Override
public List<ASTNode> performRule(ASTNode baseNode) {
final List<ASTNode> tokens = new ArrayList<ASTNode>();
COBOLVisitorAdapter adapter = new COBOLVisitorAdapter();
adapter.accept(baseNode, new AbstractCOBOLVisitor() {
@Override
public void unimplementedVisitor(String s) {
}
@Override
public boolean visit(IdentificationDivision node) {
//TODO analyze node for violations of rule and add violating nodes to tokens
return true;
}
@Override
public boolean visit(DataDivision node) {
//TODO analyze node for violations of rule and add violating nodes to tokens
return true;
}
@Override
public boolean visit(ProcedureDivision node) {
//TODO analyze node for violations of rule and add violating nodes to tokens
return true;
}
});
return tokens;
}
}
// The package name is set to the package-name portion of analysisRule.ruleclass
package com.example;
import java.util.ArrayList;
import java.util.List;
import com.ibm.etools.pli.application.model.pli.*;
import com.ibm.rsar.analysis.codereview.pl1.custom.rules.AbstractCustomPliAnalysisRule;
import com.ibm.rsar.analysis.codereview.pl1.custom.model.util.*;
// The class name is set to the class-name portion of analysisRule.ruleclass
public class PLIRule extends AbstractCustomPliAnalysisRule {
@Override
public List<PLINode> performRule(PLINode baseNode) {
final List<PLINode> nodes = new ArrayList<PLINode>();
Pl1VisitorAdapter adapter = new Pl1VisitorAdapter();
adapter.accept(baseNode, new AbstractPl1Visitor() {
@Override
public boolean visit(DefineStructureStatement node) {
// TODO examine node for rule violations and add violating nodes to node list
return true;
}
@Override
public boolean visit(EntryStatement node) {
// TODO examine node for rule violations and add violating nodes to node list
return true;
}
@Override
public boolean visit(SelectGroup node) {
// TODO examine node for rule violations and add violating nodes to node list
return true;
}
});
return nodes;
}
}