Print.parse constructor

Print.parse(
  1. XmlElement xmlPrint,
  2. MusicXMLParserState state
)

Parse the MusicXML

Implementation

factory Print.parse(XmlElement xmlPrint, MusicXMLParserState state) {
  int? blankPage;
  bool? newPage;
  bool? newSystem;
  int? pageNumber;
  double? staffSpacing;

  for (final attribute in xmlPrint.attributes) {
    final name = attribute.name.local;
    final value = attribute.value;
    switch (name) {
      case 'blank-page':
        blankPage = int.parse(value);
        break;
      case 'new-page':
        newPage = parseYesNo(value);
        break;
      case 'new-system':
        newSystem = parseYesNo(value);
        break;
      case 'page-number':
        pageNumber = int.parse(value);
        break;
      case 'staff-spacing':
        staffSpacing = double.parse(value);
        break;
      default:
      // Add implementation above
    }
  }

  return Print(
    blankPage,
    newPage ?? false,
    newSystem ?? false,
    pageNumber,
    staffSpacing,
  );
}