calculate method

MaintainabilityResult calculate(
  1. FunctionBody body
)

Calculates the maintainability index for a function/method.

Implementation

MaintainabilityResult calculate(FunctionBody body) {
  final cyclomaticComplexity =
      _complexityCalculator.calculateCyclomaticComplexity(body);

  final cognitiveComplexity =
      _complexityCalculator.calculateCognitiveComplexity(body);

  final halstead = _complexityCalculator.calculateHalsteadMetrics(body);

  final linesOfCode = _countLines(body);

  final mi = _computeMI(
    halsteadVolume: halstead.volume,
    cyclomaticComplexity: cyclomaticComplexity,
    linesOfCode: linesOfCode,
  );

  return MaintainabilityResult(
    maintainabilityIndex: mi,
    cyclomaticComplexity: cyclomaticComplexity,
    cognitiveComplexity: cognitiveComplexity,
    halsteadMetrics: halstead,
    linesOfCode: linesOfCode,
    rating: _getRating(mi),
  );
}