generateActionClass function

String generateActionClass(
  1. ClassElement c
)

Implementation

String generateActionClass(ClassElement c) {
  final setterActions = c.publicSetters.map((e) {
    return '''
FutureOr<void> ${generateSetterActionName(c, e)} (
  ${c.snapshotName} ${c.displayName.toVariableName()},
  ${e.type} ${e.displayName}
) {}
''';
  }).join('\n');

  final eventActions = c.publicMethods.map((e) {
    return '''
FutureOr<void> ${generateMethodActionName(c, e)}(
  ${c.snapshotName} ${c.displayName.toVariableName()},
  ${e.parameters.toParameterList()}
) {}
''';
  }).join('\n');

  return '''
${_generateLoaderClass(c)}
abstract class ${c.effectClassName} extends SaveEffect {

  @override
  void register() {
    super.register();
    save.\$registerEffect(${c.reactiveDataName}, this);
  }

  FutureOr<void> ${c.initActionMethodName}(${c.snapshotName} first) {}
  FutureOr<void> ${c.disposeActionMethodName}(${c.snapshotName} last) {}
  FutureOr<void> ${c.updateActionMethodName}(${c.snapshotName} updated) {}
  $setterActions
  $eventActions
}
''';
}