generateDeserializer method

  1. @override
String generateDeserializer(
  1. String expression
)
override

Generates code that deserializes an expression representing a String to an instance of the type.

An implementation to deserialize a DateTime by calling the DateTime.parse method could be as simple as:

String generateDeserializer(String expression) => 'DateTime.parse($expression)';

Implementation

@override
String generateDeserializer(String expression) {
  final closureArgument = IterableSerializerGenerator._closureArgument;
  final closureResult = _generator.generateDeserializer(closureArgument);

  final buffer = StringBuffer(expression);

  if (closureResult != closureArgument) {
    if (_isNullable) {
      buffer.write('?');
    }

    buffer.write('.map(($closureArgument) => $closureResult)');
  }

  return buffer.toString();
}