sverweij/mscgen_js

View on GitHub
src/samples/test53_all_expansions.xu

Summary

Maintainability
Test Coverage
# test53 - all xu expansions
msc {
  hscale="0.4",
  width="700",
  wordwraparcs="true",
  arcgradient="10";

  a, b, c, d, e, f, g, h, i, j, k, l, m;

  a alt m [label="a alt m", textbgcolor="#DDFFDD"] {
    b => f [label="do something nifty"];
    --- [label="ELSE: but using a simple 'comment' construct"];
    e neg i [label="e neg i"] {
       g =>> *[label="you shouldn't do this"];
    };
    ---;
    b opt l [label="b opt l"] {
      b break d [label="b break d", linecolor="red", textcolor="red",
         arclinecolor="red", arctextcolor="red"] {
        d >> b [label="story's over"];
        b note d [label="nothing after this will get executed ..."];
      };
      c par l [label="c par l", 
          textbgcolor="#FFFFAA", textcolor="#FF7700",
          linecolor="#777700",
          arctextbgcolor="#FFAAAA", arctextcolor="#FF0000",
          arclinecolor="#770000"
          ] {
        d seq l [label="d seq l", textbgcolor="#AAAAFF", textcolor="white"] {
          e -> f;
          f >> e, f ->h;
          h -> k;
          k -> f;
          f -> f;
        };
        --- [label="just a comment again"];
        d strict l [label="d strict l", textbgcolor="black", textcolor="yellow"] {
          e ignore k [label="outcomes between 1 and 100"] {
            |||;
          };
          e consider k [label="e consider k outcomes below 1 and above 100"] {
            e critical k [label="e critickal k - everything > 481"] {
              g >> a [label="alarm"];
            };
          };
        };
        f assert j [label="f assert j"] {
          g loop i [label="g loop i - for every eventuality"] {
            i ref g [label="ref is not in UML, afaik, but in here anyway"] {
              |||;
            };
          };
        };
      };
    };
  };
  m else a [label="l else b", textbgcolor="#FFDDDD"] {
    ||| [label="else is in the specification, but a simple --- also works nicely"];
  };
}

/*
    This file is part of mscgen_js.

    mscgen_js is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    mscgen_js is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with mscgen_js.  If not, see <http://www.gnu.org/licenses/>.
*/