analyze method

  1. @override
Future<List<ProjectClass>> analyze(
  1. List<ClassElement> classElements,
  2. ProjectConfiguration configuration
)
override

Implementation

@override
Future<List<ProjectClass>> analyze(List<ClassElement> classElements,
    ProjectConfiguration configuration) async {
  final projectClasses = <ProjectClass>[];
  var errorsCount = 0;
  for (var i = 0; i < classElements.length; i++) {
    final element = classElements[i];
    final elementPath = _getElementPath(element);
    final elementLayer = _findPathLayer(elementPath, configuration.layers);
    final errors = <ArchitectureError>{};
    for (var analyzer in analyzers) {
      errors
          .addAll(analyzer.findErrors(element, elementLayer, configuration));
    }
    final currentClass = ProjectClass(
      classElement: element,
      filePath: elementPath,
      layer: elementLayer,
      errors: errors,
    );
    errorsCount += currentClass.errors.length;

    projectClasses.add(currentClass);
  }
  projectClasses.sort(_compareClasses);
  print('Analyze completed. $errorsCount errors found');
  return projectClasses;
}