template.oml 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // Warning: Generated code! Do not edit!
  2. // Input file: '{{inputfile}}'
  3. // Generator: https://msdl.uantwerpen.be/git/jexelmans/xopp2py
  4. {%- if minimal %}
  5. // Minimal mode enabled: All XML attributes and non-text nodes are omitted.
  6. {%- endif %}
  7. description <{{output_namespace}}#> as {{shorthand}} {
  8. uses <{{namespaces.xopp}}#> as xopp
  9. uses <{{namespaces.object_diagram}}#> as object_diagram
  10. {%- if not minimal %}
  11. uses <{{namespaces.dict}}#> as dict
  12. {%- endif %}
  13. ci model : xopp:Model []
  14. ci file : xopp:File [
  15. xopp:hasCreator {{ file.creator | to_oml_string_literal }}
  16. xopp:hasFileVersion {{ file.fileversion }}
  17. xopp:hasTitle {{ file.title | to_oml_string_literal }}
  18. {%- if file.preview != None %}
  19. xopp:hasPreview {{ file.preview | to_base64_string }}
  20. {%- endif %}
  21. object_diagram:inModel model
  22. ]
  23. {%- for page_index, page in enumerate(file.pages) %}
  24. ci p{{page_index}} : xopp:Page [
  25. xopp:hasWidth {{ page.width }}
  26. xopp:hasHeight {{ page.height }}
  27. xopp:hasBackgroundType {{ page.background_type | to_oml_string_literal }}
  28. xopp:hasBackgroundColor {{ page.background_color | to_oml_string_literal }}
  29. xopp:hasBackgroundStyle {{ page.background_style | to_oml_string_literal }}
  30. xopp:inFile file
  31. object_diagram:inModel model
  32. ]
  33. {%- for layer_index, layer in enumerate(page.layers) %}
  34. ci p{{page_index}}l{{layer_index}} : xopp:Layer [
  35. xopp:inPage p{{page_index}}
  36. object_diagram:inModel model
  37. ]
  38. {%- for el_index, el in enumerate(layer.elements) %}
  39. {%- if not minimal or el.__class__.__name__ == "Text" %}
  40. ci p{{page_index}}l{{layer_index}}e{{el_index}} : xopp:{{el.__class__.__name__}} [
  41. xopp:hasText {{el.text | to_oml_string_literal}}
  42. xopp:inLayer p{{page_index}}l{{layer_index}}
  43. object_diagram:inModel model
  44. ]
  45. {%- if not minimal %}
  46. {%- for key, value in el.attributes.items() %}
  47. ci p{{page_index}}l{{layer_index}}e{{el_index}}a{{loop.index}} : xopp:XMLAttribute [
  48. dict:hasKey {{key | to_oml_string_literal}}
  49. dict:hasValue {{value | to_oml_string_literal}}
  50. xopp:ofLayerElement p{{page_index}}l{{layer_index}}e{{el_index}}
  51. object_diagram:inModel model
  52. ]
  53. {%- endfor %}
  54. {%- endif %}
  55. {%- endif %}
  56. {%- endfor %}
  57. {%- endfor %}
  58. {%- endfor %}
  59. }