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),
        );
      }
    }
  }
}