process method

  1. @override
InsertionMethod process()
override

Implementation

@override
InsertionMethod process() {
  final name = _methodElement.name;
  final returnType = _methodElement.returnType;

  _assertMethodReturnsFuture(returnType);

  final returnsList = _getReturnsList(returnType);
  final flattenedReturnType =
      _getFlattenedReturnType(returnType, returnsList);

  final returnsVoid = flattenedReturnType.isVoid;
  final returnsInt = flattenedReturnType.isDartCoreInt;
  final returnsIntList = returnsList && flattenedReturnType.isDartCoreInt;

  if (!returnsVoid && !returnsIntList && !returnsInt) {
    throw _errors.doesNotReturnVoidNorIntNorListInt;
  }

  final parameterElement = _helper.getParameterElement();
  final flattenedParameterType =
      _helper.getFlattenedParameterType(parameterElement);

  final entity = _helper.getEntity(flattenedParameterType);
  final onConflict = _getOnConflictStrategy();

  return InsertionMethod(
    _methodElement,
    name,
    returnType,
    flattenedReturnType,
    parameterElement,
    entity,
    onConflict,
  );
}