generateConstructor method

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

Generates code that constructs a representation of the type from an expression as an XML attribute / XML element / XML text.

An implementation to construct a representation of the type as an XML text could be as simple as:

String generateConstructor(String expression) => 'XmlText($expression)';

Implementation

@override
String generateConstructor(String expression) {
  final buffer = StringBuffer();

  if (_isNullable && _includeIfNull == false) {
    buffer.write('$expression != null ? ');
  }

  buffer.write('XmlElement(XmlName(\'$_name\'');

  if (_namespace != null) {
    buffer.write(', namespaces[\'$_namespace\']');
  }

  buffer.write('), [], ');

  if (_isNullable && _includeIfNull != false) {
    buffer.write('$expression != null ? ');
  }

  buffer.write('[XmlText($expression)]');

  if (_isNullable && _includeIfNull != false) {
    buffer.write(' : []');
  }

  if (_isSelfClosing != null) {
    buffer.write(', $_isSelfClosing');
  }

  buffer.write(')');

  if (_isNullable && _includeIfNull == false) {
    buffer.write(' : null');
  }

  return buffer.toString();
}