process method

  1. @override
UpdateMethod process()
override

Implementation

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

  _assertMethodReturnsFuture(returnType);

  final flattenedReturnType = _getFlattenedReturnType(returnType);
  _assertMethodReturnsNoList(flattenedReturnType);

  final returnsInt = flattenedReturnType.isDartCoreInt;
  final returnsVoid = flattenedReturnType is VoidType;

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

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

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