renderYaml function

void renderYaml(
  1. String yamlString,
  2. String outputTemplate
)

Implementation

void renderYaml(String yamlString, String outputTemplate) {
  if (yamlString.length == 0) {
    return;
  }
  final yaml = loadYaml(yamlString) as Map;
  final concepts = yaml['concepts'] as Iterable;
  for (final concept in concepts) {
    final conceptName = concept['name'] as String;
    print(outputTemplate
        .replaceAll('{conceptName}', conceptName)
        .replaceAll('{attributeName}', '')
        .replaceAll('{relationName}', ''));

    final attributes = concept['attributes'] as Iterable<Map>;
    for (final attribute in attributes) {
      final attributeName = attribute['name'] as String;
      print(outputTemplate
          .replaceAll('{conceptName}', conceptName)
          .replaceAll('{attributeName}', attributeName)
          .replaceAll('{relationName}', ''));
    }

    final relations = yaml['relations'] as Iterable;
    for (final relation in relations) {
      final from = relation['from'] as String;
      final to = relation['to'] as String;
      final fromToName = relation['fromToName'] as String;
      final toFromName = relation['toFromName'] as String;
      if (from == conceptName) {
        final relationName = '$fromToName $to';
        print(outputTemplate
            .replaceAll('{conceptName}', conceptName)
            .replaceAll('{attributeName}', '')
            .replaceAll('{relationName}', relationName));
      }
      if (to == conceptName) {
        final relationName = '$toFromName $from';
        print(outputTemplate
            .replaceAll('{conceptName}', conceptName)
            .replaceAll('{attributeName}', '')
            .replaceAll('{relationName}', relationName));
      }
    }
  }
}