public ScanResult scan(UastNode uast, InputFile inputFile) throws IOException { metricsVisitor.enterFile(uast); engineContext.enterFile(inputFile); visit(uast); return new ScanResult(engineContext.getIssues(), metricsVisitor.getMetrics()); }
protected final void reportIssue(UastNode node, String message, Issue.Message... secondaryMessages) { context.reportIssue(new Issue(this, new Issue.Message(node, message), null, secondaryMessages)); }
public void enterFile(UastNode uast) { metrics = new Metrics(); metrics.cognitiveComplexity = CognitiveComplexity.calculateFileComplexity(uast).value(); }
private void visitNestedChildren(UastNode node) { incrementNesting(); visitChildren(node); decrementNesting(); }
private static void validate(UastNode node) throws IOException { engine.scan(node, null); }
protected final void reportIssueOnLine(int line, String message) { context.reportIssue(Issue.issueOnLine(this, line, message)); } }
public static CognitiveComplexity calculateFileComplexity(UastNode compilationUnit) { CognitiveComplexity complexityVisitor = new CognitiveComplexity(null); complexityVisitor.visit(null, compilationUnit); return complexityVisitor; }
protected final void reportIssueOnFile(String message) { context.reportIssue(Issue.issueOnFile(this, message)); }
private void visitFunction(UastNode node) { if (inAFunction) { visitNestedChildren(node); } else { inAFunction = true; visitChildren(node); inAFunction = false; } }
/** * This method is called only once by analysis */ public void initialize(EngineContext context) { this.context = context; for (UastNode.Kind kind : kinds) { context.register(kind, this); } }
private void visitChildren(UastNode node) { for (UastNode child : node.children) { visit(node, child); } }
private void increaseComplexity(UastNode node, int increase) { this.complexity += increase; addSecondaryLocation(node, increase); }
private void increaseComplexityByOne(UastNode node) { increaseComplexity(node, 1); }
protected final void reportIssue(UastNode from, UastNode to, String message, Issue.Message... secondaryMessages) { context.reportIssue(new Issue(this, new Issue.Message(from, to, message), null, secondaryMessages)); }
private static void validate(UastNode node) throws IOException { engine.scan(node, null); }
protected final void reportIssue(UastNode from, UastNode to, String message, double effortToFix, Issue.Message... secondaryMessages) { context.reportIssue(new Issue(this, new Issue.Message(from, to, message), effortToFix, secondaryMessages)); }
private static void validate(UastNode node) throws IOException { engine.scan(node, null); }
protected final void reportIssue(UastNode node, String message) { context.reportIssue(new Issue(this, new Issue.Message(node, message), null)); }