interpret method
Implementation
@override
String interpret(EditorContext context) {
var buffer = StringBuffer();
buffer.write(context.indent());
if (isAbstract ?? false) {
buffer.write('abstract ');
}
buffer.write('class $className');
/// [extends] $baseClass
if (baseClass != null) {
buffer.write(' extends $baseClass');
}
/// [with] $mixins[0], $mixins[1]
if (mixins != null) {
buffer.write(' with ');
mixins!.forEach((element) {
buffer.write(element);
if (element != mixins!.last) {
buffer.write(', ');
}
});
}
/// [implements] $interfaces[0], $interfaces[1]
if (interfaces != null) {
buffer.write(' implements ');
interfaces!.forEach((element) {
buffer.write(element);
if (element != interfaces!.last) {
buffer.write(', ');
}
});
}
buffer.writeln(context.openScope(Scope.CLASS));
if (attributes != null) {
attributes!.forEach((element) {
buffer.write(element.interpret(context));
});
buffer.writeln();
}
if (constructors != null) {
constructors!.forEach((element) {
buffer.write(element.interpret(context));
});
buffer.writeln();
}
if (methods != null) {
methods!.forEach((element) {
buffer.write(element.interpret(context));
});
}
buffer.write(context.closeScope());
return buffer.toString();
}