{% for package in context.packages %} {% assign package_name = package.name | downcase | replace: ":", "" | replace: " ", "_" %} {% if additional_context.before and additional_context.before.size > 0 %} {% for before in additional_context.before %} {% if before.liquid %} {{ before.text | interpolate }} {% else %} {{ before.text }} {% endif %} {% endfor %} {% endif %} {% assign before_package_key = 'before;' | append: package.name %} {% if additional_context[before_package_key] %} {% for before in additional_context[before_package_key] %} {% if before.liquid %} {{ before.text | interpolate }} {% else %} {{ before.text }} {% endif %} {% endfor %} {% endif %} {% if depth %} {% assign nested_depth = depth | plus: 1 %} {% capture equalsigns %}{% for count in (1..depth) %}={% endfor %}{% endcapture %} [[rc_{{ package_name }}-model_section]] {{equalsigns}} {{ package.name }} {% endif %} {% if additional_context.all_macros.size > 0 %} {% assign sorted_all_macros = additional_context.all_macros | where: "position", "before" | sort: 'index' %} {% for block in sorted_all_macros %} {% case block.type %} {% when 'include_block' %} {% unless block.package and block.package != package.name %} {% capture block_filename %}{{ block.base_path }}{{ package_name }}{% endcapture %} {% capture block_content %}{% include block_filename %}{% endcapture %} {% unless block_content contains "Liquid error" %} {% if block.text %} {% if block.liquid %} {{ block.text | interpolate }} {% else %} {{ block.text }} {% endif %} {% endif %} {{ block_content }} {% endunless %} {% endunless %} {% when 'package_text' %} {% unless block.package and block.package != package.name %} {% if block.liquid %} {{ block.text | interpolate }} {% else %} {{ block.text }} {% endif %} {% endunless %} {% else %} {% endcase %} {% endfor %} {% endif %} {% comment %} // TODO: move to all_macros block {% endcomment %} {% if additional_context.diagram_include_block %} {% for diagram_include_block in additional_context.diagram_include_block %} {% include "diagrams_block", package_name: package_name, image_base_path: diagram_include_block.base_path, text: diagram_include_block.text %} {% endfor %} {% endif %} {% if package.classes.size > 0 %} {% unless package_skip_sections[package.name]['classes'] %} {{equalsigns}}= Class definitions {% endunless %} {% comment %} {% assign data_types = package.classes | where: "stereotype", "DataType" %} {% endcomment %} {% assign basic_types = package.classes | where: "stereotype", "BasicType" %} {% comment %} {% assign enumerations = package.classes | where: "stereotype", "Enumeration" %} {% endcomment %} {% assign code_lists = package.classes | where: "stereotype", "CodeList" %} {% assign unions = package.data_types | where: "stereotype", "Union" %} {% assign not_classes_length = plus: basic_types.size | plus: code_lists.size %} {% assign not_classes_stereotypes = 'DataType,BasicType,Enumeration,CodeList' | split: ','%} {% unless not_classes_length == package.classes.size or package_skip_sections[package.name]['classes'] %} .Classes defined in {{ package.name }} ({{ package.stereotype }}) [cols="2a,6a",options="header"] |=== |Name |Description {% for klass in package.classes %} {% unless not_classes_stereotypes contains klass.stereotype %} {% capture ref_id %}{% if additional_context.external_classes[klass.name] %}{{ additional_context.external_classes[klass.name] }}{% else %}{{ klass.name }}-section{% endif %}{% endcapture %} | <<{{ ref_id }},{{ klass.name }}>> «{{ klass.stereotype }}» | {{ klass.definition | replace: '|', '\|' }} {% endunless %} {% endfor %} |=== {% endunless %} {% assign non_unions = package.data_types | where: "stereotype", "DataType" %} {% if non_unions.size > 0 %} {% include "packages_entity_list_classes", classes: non_unions, type: "Data types", depth: nested_depth %} {% endif %} {% if basic_types.size > 0 %} {% include "packages_entity_list_classes", classes: basic_types, type: "Primitive data types", depth: nested_depth %} {% endif %} {% if package.enums.size > 0 %} {% include "packages_entity_list_classes", classes: package.enums, type: "Enumerated classes", depth: nested_depth %} {% endif %} {% if unions.size > 0 %} {% include "packages_entity_list_classes", classes: unions, type: "Union types", depth: nested_depth %} {% endif %} {% if code_lists.size > 0 %} {% include "packages_entity_list_classes", classes: code_lists, type: "Code list classes", depth: nested_depth %} {% endif %} {% endif %} {% if additional_context.all_macros.size > 0 %} {% assign sorted_all_macros = additional_context.all_macros | where: "position", "after" | sort: 'index' %} {% for block in sorted_all_macros %} {% case block.type %} {% when 'include_block' %} {% unless block.package and block.package != package.name %} {% capture block_filename %}{{ block.base_path }}{{ package_name }}{% endcapture %} {% capture block_content %}{% include block_filename %}{% endcapture %} {% unless block_content contains "Liquid error" %} {% if block.text %} {% if block.liquid %} {{ block.text | interpolate }} {% else %} {{ block.text }} {% endif %} {% endif %} {{ block_content }} {% endunless %} {% endunless %} {% when 'package_text' %} {% unless block.package and block.package != package.name %} {% if block.liquid %} {{ block.text | interpolate }} {% else %} {{ block.text }} {% endif %} {% endunless %} {% else %} {% endcase %} {% endfor %} {% endif %} {% assign after_package_key = 'after;' | append: package.name %} {% if additional_context[after_package_key] %} {% for after in additional_context[after_package_key] %} {% if after.liquid %} {{ after.text | interpolate }} {% else %} {{ after.text }} {% endif %} {% endfor %} {% endif %} {% if package.packages.size > 0 and render_nested_packages %} {% include "packages_entity_list", depth: nested_depth, context: package %} {% endif %} {% endfor %} {% if additional_context.after and additional_context.after.size > 0 %} {% for after in additional_context.after %} {% if after.liquid %} {{ after.text | interpolate }} {% else %} {{ after.text }} {% endif %} {% endfor %} {% endif %}