There are servals shortcomings ( and probably bugs ) of beta syntax parser of activity diagram
Main bug:
repetead sequence of
fork ... endfork
fork ....endfork
would yield in repeted synchronization lines like this:
----syncline----
----syncline----
another problems of syntax (inposible to do or undocumented)
- Dooing loops out of boundry of fork ( when you synchronize to previous sync bars and another branche of fork synchronize to another)
- spawning async task ( in atached code is only task with note)
- non beta syntax is also clumsy and what i did is kinda hack
- notes to synchronization bars ( at least undocumented)
- using partitions ( at least undocumented)
what i tryed to visualise :
paralel java stream ( https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html)
used as execution pipeline that spawns async tasks
rendred image http://prntscr.com/nfwy4z
IHMO new beta syntax should be full replacement of old syntax
Attached code:
@startuml
title Zjednodušený diagram aktivit\n optimalozované impementace importu
partition "Java paralelní Stream" {
(*) --> ===B1===
--> "Načtení řádku"
--> ===B2===
--> "Vyfyltrování a extrakce FASA komentářů (pouze fasta formát)"
--> ===B3===
--> "Tranformace na velká písmena"
--> ===B4===
--> "Validace dat"
--> If "Data validní?" then
-->[ne] "Vykopírování validních dat"
--> ===B5===
else
--> [ano] ===B5===
Endif
===B5=== --> "Agregace délky řádku do délky dat"
--> "Zařazení dat na asynchroní počítání nukleotidů"
--> ===B6===
--> "Uložení validního řádku na disk"
--> If "Další řádek?" then
-->[ano] ===B1===
else
}
-->[ne] "Zavření souboru"
--> "Kolekce a uložení FASTA komentářů"
--> ===B7===
Endif
"Zařazení dat na asynchroní počítání nukleotidů"--> "Spočítání nukleotidů v řádku
agregace dat do celkového počtu"
note top: Asynchroní úloha
--> ===B7===
note right: Počká na konec asynchroních úloh
--> "Kolekce a uložení uložení nukleotidů"
--> (*)
@enduml