<!-- Read models from file. -->
<node name="branch_voltage" channel="inline" format="flow/branch" model="">
    <node name="criterion" channel="inline" format="text/cybol-path" model=".settings.voltage_criterion"/>
    <node name="true" channel="file" format="element/part" model="indoor_climate/add_voltage.cybol"/>
    <node name="false" channel="file" format="element/part" model="indoor_climate/report_voltage_failure.cybol"/>
</node>

<!-- Branch with one model. -->
<node name="if-then" channel="inline" format="flow/branch" model="">
    <node name="criterion" channel="inline" format="text/cybol-path" model=".app.var.flag_loose"/>
    <node name="true" channel="inline" format="text/cybol-path" model=".app.print_win"/>
</node>

<!-- Branch with two models. -->
<node name="if-then-else" channel="inline" format="flow/branch" model="">
    <node name="criterion" channel="inline" format="text/cybol-path" model=".domain.flag"/>
    <node name="true" channel="inline" format="text/cybol-path" model=".domain.true_model"/>
    <node name="false" channel="inline" format="text/cybol-path" model=".domain.false_model"/>
</node>

<!-- Verify existence of given url path. -->
<node name="test_query" channel="inline" format="access/indicate-exists" model="">
    <node name="result" channel="inline" format="text/cybol-path" model=".var.query_exists"/>
    <node name="part" channel="inline" format="text/cybol-path" model=".var.request:uri:query"/>
</node>
<node name="evaluate_query" channel="inline" format="flow/branch" model="">
    <node name="criterion" channel="inline" format="text/cybol-path" model=".var.query_exists"/>
    <node name="true" channel="inline" format="text/cybol-path" model=".logic.evaluate_query"/>
    <!--
        CAUTION! Sending a response is important, even if the query was empty or not understood,
        since some browsers request a "/favicon.ico" or other things and if no response was sent,
        the browser would wait forever and block requests from other clients.
    -->
    <node name="false" channel="inline" format="text/cybol-path" model=".logic.send.empty_message"/>
</node>

<!-- Fill cell with default value if database value is empty. -->
<node name="translate_cell" channel="inline" format="flow/branch" model="">
    <node name="criterion" channel="inline" format="text/cybol-path" model="#empty"/>
    <node name="true" channel="inline" format="text/cybol-path" model=".logic.translate.db_to_wui.cell_default"/>
    <node name="false" channel="inline" format="text/cybol-path" model=".logic.translate.db_to_wui.cell"/>
</node>

<!-- Call operation directly inline (not as cybol-path) and hand over properties as operation parametres. -->
<node name="process_model_as_compound_or_primitive" channel="inline" format="flow/branch" model="">
    <node name="criterion" channel="inline" format="text/cybol-path" model="#compound_flag"/>
    <node name="true" channel="inline" format="communicate/send" model="">
        <node name="channel" channel="inline" format="meta/channel" model="terminal"/>
        <node name="receiver" channel="inline" format="text/cybol-path" model=".stdout"/>
        <node name="language" channel="inline" format="meta/language" model="message/tui"/>
        <node name="format" channel="inline" format="meta/format" model="text/plain"/>
        <node name="message" channel="inline" format="text/plain" model="Do nothing, since this is a compound model."/>
    </node>
    <node name="false" channel="inline" format="modify/overwrite" model="">
        <node name="destination" channel="inline" format="text/cybol-path" model=".wui.index.body.content.(#wui_record_name).table.(#wui_field_name).model"/>
        <node name="source" channel="inline" format="text/cybol-path" model="#field_model_text"/>
    </node>
</node>