analyzeModels method

Analyze all files in the AnalysisContextCollection for FutureCallParameterDefinition which need to be converted into SerializableModelDefinition for model generation.

analyzedModels are the validated models from StatefulAnalyzer.validateAll.

Implementation

Future<List<SerializableModelDefinition>> analyzeModels(
  CodeAnalysisCollector collector,
  List<SerializableModelDefinition> analyzedModels,
) async {
  _cachedAnalyzedModels
    ..clear()
    ..addAll(analyzedModels);

  final futureCalls = await analyze(
    collector: collector,
    analyzedModels: analyzedModels,
  );
  final models = <SerializableModelDefinition>[];

  for (final futureCall in futureCalls) {
    for (final method in futureCall.methods) {
      if (method.futureCallMethodParameter != null) {
        models.add(
          method.futureCallMethodParameter!.toSerializableModel(),
        );
      }
    }
  }

  SerializableModelAnalyzer.resolveModelDependencies([
    ...analyzedModels,
    ...models,
  ]);

  return models;
}