use of net.sourceforge.pmd.lang.apex.ast.ApexParserVisitorAdapter in project pmd by pmd.
the class ApexProjectMirrorTest method visitWith.
private List<Integer> visitWith(ApexNode<Compilation> acu, final boolean force) {
final ApexProjectMemoizer toplevel = ApexMetrics.getFacade().getLanguageSpecificProjectMemoizer();
final List<Integer> result = new ArrayList<>();
acu.jjtAccept(new ApexParserVisitorAdapter() {
@Override
public Object visit(ASTMethod node, Object data) {
MetricMemoizer<ASTMethod> op = toplevel.getOperationMemoizer(node.getQualifiedName());
result.add((int) ApexMetricsComputer.INSTANCE.computeForOperation(opMetricKey, node, force, MetricOptions.emptyOptions(), op));
return super.visit(node, data);
}
@Override
public Object visit(ASTUserClass node, Object data) {
MetricMemoizer<ASTUserClassOrInterface<?>> clazz = toplevel.getClassMemoizer(node.getQualifiedName());
result.add((int) ApexMetricsComputer.INSTANCE.computeForType(classMetricKey, node, force, MetricOptions.emptyOptions(), clazz));
return super.visit(node, data);
}
}, null);
return result;
}
use of net.sourceforge.pmd.lang.apex.ast.ApexParserVisitorAdapter in project pmd by pmd.
the class ApexMultifileVisitorTest method testOperationsAreThere.
@Test
public void testOperationsAreThere() throws IOException {
ApexNode<Compilation> acu = parseAndVisitForString(IOUtils.toString(ApexMultifileVisitorTest.class.getResourceAsStream("MetadataDeployController.cls")));
final ApexSignatureMatcher toplevel = ApexProjectMirror.INSTANCE;
final ApexOperationSigMask opMask = new ApexOperationSigMask();
// We could parse qnames from string but probably simpler to do that
acu.jjtAccept(new ApexParserVisitorAdapter() {
@Override
public Object visit(ASTMethod node, Object data) {
if (!node.getImage().matches("(<clinit>|<init>|clone)")) {
assertTrue(toplevel.hasMatchingSig(node.getQualifiedName(), opMask));
}
return data;
}
}, null);
}
Aggregations