generateBuilder method
Generates code that builds a representation of the type from an expression
as an XML attribute / XML element / XML text using a builder
.
An implementation to build a representation of the type as an XML text could be as simple as:
String generateBuilder(String expression, {String builder = 'builder'}) => '$builder.text($expression);';
Implementation
@override
String generateBuilder(String expression, {String builder = 'builder'}) {
final buffer = StringBuffer();
if (_isNullable) {
buffer.write('if ($expression != null) { ');
}
buffer.write('$builder.element(\'$_name\'');
if (_namespace != null) {
buffer.write(', namespace: \'$_namespace\'');
}
buffer.write(', namespaces: namespaces');
if (_isSelfClosing != null) {
buffer.write(', isSelfClosing: $_isSelfClosing');
}
buffer.write(', nest: () { ');
buffer.write(
'$expression.buildXmlChildren($builder, namespaces: namespaces);',
);
buffer.write(' });');
if (_isNullable) {
buffer.write(' }');
}
return buffer.toString();
}