287 lines
67 KiB
HTML
287 lines
67 KiB
HTML
<!doctype html><html lang=en class="js csstransforms3d"><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=generator content="Hugo 0.80.0"><meta name=description content="Strolch is a parameterized framework for use on servers and IoT"><meta name=author content="Strolch"><link rel=icon href=/favicon.ico type=image/ico><title>Model - Strolch</title><link href=/css/nucleus.css?1660745009 rel=stylesheet><link href=/css/fontawesome-all.min.css?1660745009 rel=stylesheet><link href=/css/hybrid.css?1660745009 rel=stylesheet><link href=/css/featherlight.min.css?1660745009 rel=stylesheet><link href=/css/perfect-scrollbar.min.css?1660745009 rel=stylesheet><link href=/css/auto-complete.css?1660745009 rel=stylesheet><link href=/css/atom-one-dark-reasonable.css?1660745009 rel=stylesheet><link href=/css/theme.css?1660745009 rel=stylesheet><link href=/css/hugo-theme.css?1660745009 rel=stylesheet><link href=/css/theme-green.css?1660745009 rel=stylesheet><script src=/js/jquery-3.3.1.min.js?1660745009></script><style>:root #header+#content>#left>#rlblock_left{display:none!important}</style></head><body data-url=/documentation/model/><nav id=sidebar><div id=header-wrapper><div id=header><a id=logo href=/><img src=/logo.png></a></div><div class=searchbox><label for=search-by><i class="fas fa-search"></i></label><input data-search-input id=search-by type=search placeholder=Search...>
|
|
<span data-search-clear><i class="fas fa-times"></i></span></div><script type=text/javascript src=/js/lunr.min.js?1660745009></script><script type=text/javascript src=/js/auto-complete.js?1660745009></script><script type=text/javascript>var baseurl="https:\/\/strolch.li\/";</script><script type=text/javascript src=/js/search.js?1660745009></script></div><section id=homelinks><ul><li><a class=padding href=/><i class="fas fa-home"></i>Home</a></li></ul></section><div class=highlightable><ul class=topics><li data-nav-id=/api/ title=API class=dd-item><a href=/api/>API</a></li><li data-nav-id=/documentation/ title=Documentation class="dd-item
|
|
parent"><a href=/documentation/>Documentation</a><ul><li data-nav-id=/documentation/architecture/ title=Architecture class=dd-item><a href=/documentation/architecture/>Architecture</a></li><li data-nav-id=/documentation/model/ title=Model class="dd-item active"><a href=/documentation/model/>Model</a></li><li data-nav-id=/documentation/do-and-donts/ title="Do and Don't" class=dd-item><a href=/documentation/do-and-donts/>Do and Don't</a></li><li data-nav-id=/documentation/runtime-configuration/ title="Runtime Configuration" class=dd-item><a href=/documentation/runtime-configuration/>Runtime Configuration</a></li><li data-nav-id=/documentation/realms/ title=Realms class=dd-item><a href=/documentation/realms/>Realms</a></li><li data-nav-id=/documentation/components/ title=Components class=dd-item><a href=/documentation/components/>Components</a></li><li data-nav-id=/documentation/services-and-commands/ title="Services and Commands" class=dd-item><a href=/documentation/services-and-commands/>Services and Commands</a></li><li data-nav-id=/documentation/searches/ title=Searches class=dd-item><a href=/documentation/searches/>Searches</a></li><li data-nav-id=/documentation/queries/ title=Queries class=dd-item><a href=/documentation/queries/>Queries</a></li><li data-nav-id=/documentation/transactions/ title=Transactions class=dd-item><a href=/documentation/transactions/>Transactions</a></li><li data-nav-id=/documentation/policies/ title=Policies class=dd-item><a href=/documentation/policies/>Policies</a></li><li data-nav-id=/documentation/observers/ title=Observers class=dd-item><a href=/documentation/observers/>Observers</a></li><li data-nav-id=/documentation/versioning/ title=Versioning class=dd-item><a href=/documentation/versioning/>Versioning</a></li><li data-nav-id=/documentation/reports/ title=Reports class=dd-item><a href=/documentation/reports/>Reports</a></li><li data-nav-id=/documentation/priviles/ title=Privileges class=dd-item><a href=/documentation/priviles/>Privileges</a></li></ul></li><li data-nav-id=/plc/ title=PLC class=dd-item><a href=/plc/>PLC</a><ul><li data-nav-id=/plc/architecture/ title=Architecture class=dd-item><a href=/plc/architecture/>Architecture</a></li><li data-nav-id=/plc/example-set-up/ title="Example Set-Up" class=dd-item><a href=/plc/example-set-up/>Example Set-Up</a></li></ul></li><li data-nav-id=/tutorial/ title=Tutorial class=dd-item><a href=/tutorial/>Tutorial</a><ul><li data-nav-id=/tutorial/configuration/ title=Configuration class=dd-item><a href=/tutorial/configuration/>Configuration</a></li><li data-nav-id=/tutorial/model/ title=Model class=dd-item><a href=/tutorial/model/>Model</a></li><li data-nav-id=/tutorial/crud-book/ title="CRUD Book" class=dd-item><a href=/tutorial/crud-book/>CRUD Book</a></li></ul></li><li data-nav-id=/download/ title=Download class=dd-item><a href=/download/>Download</a></li><li data-nav-id=/development/ title=Development class=dd-item><a href=/development/>Development</a><ul><li data-nav-id=/development/prerequisites/ title=Prerequisites class=dd-item><a href=/development/prerequisites/>Prerequisites</a></li><li data-nav-id=/development/building/ title="Building Strolch" class=dd-item><a href=/development/building/>Building Strolch</a></li><li data-nav-id=/development/maven-archetypes/ title="Maven Archetypes" class=dd-item><a href=/development/maven-archetypes/>Maven Archetypes</a></li><li data-nav-id=/development/web-app/ title="Web App" class=dd-item><a href=/development/web-app/>Web App</a></li><li data-nav-id=/development/main-class-app/ title="Main Class App" class=dd-item><a href=/development/main-class-app/>Main Class App</a></li><li data-nav-id=/development/converting-existing/ title="Converting Existing App" class=dd-item><a href=/development/converting-existing/>Converting Existing App</a></li></ul></li><li data-nav-id=/blog/ title=Blog class=dd-item><a href=/blog/>Blog</a><ul><li data-nav-id=/blog/post-00016/ title="Strolch PLC now also on Maven Central" class=dd-item><a href=/blog/post-00016/>Strolch PLC now also on Maven Central</a></li><li data-nav-id=/blog/post-00015/ title="Release of Strolch 1.6.100" class=dd-item><a href=/blog/post-00015/>Release of Strolch 1.6.100</a></li><li data-nav-id=/blog/post-00014/ title="Strolch Reports" class=dd-item><a href=/blog/post-00014/>Strolch Reports</a></li><li data-nav-id=/blog/post-00013/ title="Strolch Searches" class=dd-item><a href=/blog/post-00013/>Strolch Searches</a></li><li data-nav-id=/blog/post-00012/ title="Wow, the many changes!" class=dd-item><a href=/blog/post-00012/>Wow, the many changes!</a></li><li data-nav-id=/blog/post-00011/ title="Strolch now on Maven Central" class=dd-item><a href=/blog/post-00011/>Strolch now on Maven Central</a></li><li data-nav-id=/blog/post-00010/ title="Versioning of objects" class=dd-item><a href=/blog/post-00010/>Versioning of objects</a></li><li data-nav-id=/blog/post-00009/ title="Release 1.2.0" class=dd-item><a href=/blog/post-00009/>Release 1.2.0</a></li><li data-nav-id=/blog/post-00008/ title="Strolch Update" class=dd-item><a href=/blog/post-00008/>Strolch Update</a></li><li data-nav-id=/blog/post-00007/ title="Activities: Beginning of the planning engine" class=dd-item><a href=/blog/post-00007/>Activities: Beginning of the planning engine</a></li><li data-nav-id=/blog/post-00006/ title="Strolch Documentation" class=dd-item><a href=/blog/post-00006/>Strolch Documentation</a></li><li data-nav-id=/blog/post-00005/ title="Strolch Release 1.0.0" class=dd-item><a href=/blog/post-00005/>Strolch Release 1.0.0</a></li><li data-nav-id=/blog/post-00004/ title="DurationParameter and other minor changes: Release 1.0.0-RC4" class=dd-item><a href=/blog/post-00004/>DurationParameter and other minor changes: Release 1.0.0-RC4</a></li><li data-nav-id=/blog/post-00003/ title="DB Initialization: Release 1.0.0-RC3" class=dd-item><a href=/blog/post-00003/>DB Initialization: Release 1.0.0-RC3</a></li><li data-nav-id=/blog/post-00002/ title="Release 1.0.0-RC2" class=dd-item><a href=/blog/post-00002/>Release 1.0.0-RC2</a></li><li data-nav-id=/blog/post-00001/ title="Release 1.0.0-RC1" class=dd-item><a href=/blog/post-00001/>Release 1.0.0-RC1</a></li></ul></li></ul><section id=shortcuts><h3>More</h3><ul><li><a class=padding href=https://strolch.li/tags><i class="fas fa-tags"></i>Tags</a></li><li><a class=padding href=https://github.com/strolch-li target=_blank><i class="fab fa-github"></i>GitHub project</a></li></ul></section><section id=footer><p>Built with <a href=https://github.com/matcornic/hugo-theme-learn target=_blank><i class="fas fa-heart"></i></a>from <a href=https://getgrav.org target=_blank>Grav</a> and <a href=https://gohugo.io/ target=_blank>Hugo</a></p></section></div></nav><section id=body><div id=overlay></div><div class="padding highlightable"><div><div id=top-bar><div id=top-github-link><a class=github-link title="Edit this page" href=https://github.com/strolch-li/strolch-website/tree/develop/content/documentation/model.md target=blank><i class="fas fa-code-branch"></i><span id=top-github-link-text>Edit this page</span></a></div><div id=breadcrumbs itemscope itemtype=http://data-vocabulary.org/Breadcrumb><span id=sidebar-toggle-span><a href=# id=sidebar-toggle data-sidebar-toggle><i class="fas fa-bars"></i></a></span><span id=toc-menu><i class="fas fa-list-alt"></i></span><span class=links><a href=/>Strolch Overview</a> > <a href=/documentation/>Documentation</a> > Model</span></div><div class=progress><div class=wrapper><nav id=TableOfContents><ul><li><a href=#model>Model</a></li></ul></nav></div></div></div></div><div id=head-tags></div><div id=body-inner><h1>Model</h1><h2 id=model>Model</h2><p>Before we dive into the entire model, let’s show an example and how it would
|
|
be modelled in Strolch and use in Strolch:</p><p><img src=/assets/images/strolch-model-example.png alt="Strolch model example"></p><p>The model has four entities, which will be modelled using 3 Resources and 1 Order object. The objects have numerous fields and the following relationships:</p><ul><li>Bidirectional between Article <-> Product</li><li>Unidirectional from Order -> Article</li><li>Unidirectional from Order -> Customer</li></ul><p>A possible model would look as follows:</p><div class=highlight><pre style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-xml data-lang=xml><span style=color:#75715e><?xml version="1.0" encoding="UTF-8" ?></span>
|
|
<span style=color:#f92672><StrolchModel</span> <span style=color:#a6e22e>xmlns=</span><span style=color:#e6db74>"https://strolch.li/xsd/StrolchModel-1.6.xsd"</span><span style=color:#f92672>></span>
|
|
|
|
<span style=color:#f92672><Resource</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"Product"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Product Template"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Template"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"parameters"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Parameters"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Parameters"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"description"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Description"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"String"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"color"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Color"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"String"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"form"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Form"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"String"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"relations"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Relations"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Relations"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"articles"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Articles"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"StringList"</span> <span style=color:#a6e22e>Interpretation=</span><span style=color:#e6db74>"Resource-Ref"</span> <span style=color:#a6e22e>Uom=</span><span style=color:#e6db74>"Article"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672></Resource></span>
|
|
|
|
<span style=color:#f92672><Resource</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"Article"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Article Template"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Template"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"parameters"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Parameters"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Parameters"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"description"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Description"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"String"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"barcode"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Barcode"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"String"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"relations"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Relations"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Relations"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"product"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Product"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"String"</span> <span style=color:#a6e22e>Interpretation=</span><span style=color:#e6db74>"Resource-Ref"</span> <span style=color:#a6e22e>Uom=</span><span style=color:#e6db74>"Product"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672></Resource></span>
|
|
|
|
<span style=color:#f92672><Resource</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"Customer"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Customer Template"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Template"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"address"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Address"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Address"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"street"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Street"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"String"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"zip"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Zip"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"String"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"city"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"City"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"String"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"country"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Country"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"String"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672></Resource></span>
|
|
|
|
<span style=color:#f92672><Order</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"Order"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Order"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Template"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"quantities"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Quantities per Article Id"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Quantities"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"quantity"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Quantity"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Float"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"0"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"relations"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Relations"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Relations"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"articles"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Articles"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"StringList"</span> <span style=color:#a6e22e>Interpretation=</span><span style=color:#e6db74>"Resource-Ref"</span> <span style=color:#a6e22e>Uom=</span><span style=color:#e6db74>"Article"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"customer"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Customer"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"String"</span> <span style=color:#a6e22e>Interpretation=</span><span style=color:#e6db74>"Resource-Ref"</span> <span style=color:#a6e22e>Uom=</span><span style=color:#e6db74>"Customer"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>""</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672></Order></span>
|
|
|
|
<span style=color:#f92672></StrolchModel></span>
|
|
</code></pre></div><p>Let’s go through this model:</p><ul><li>In the above model we see that the <code>id</code> and <code>name</code> fields are always on the
|
|
element, and thus aren’t added as parameters. Further best practice is to use
|
|
a <code>parameters</code> ParameterBag, with one or more parameters, modelling the
|
|
fields. There is API support to not have to always type the <code>parameters</code> bag
|
|
id.</li><li>Note that in this example the Type of all the elements is <code>Template</code>. Strolch
|
|
has API support to create a clone of these elements, so that they have a
|
|
unique id, and the proper type for persistence.</li><li>The <code>Product</code> element has three parameters: <code>description</code>, <code>color</code> and <code>form</code>. In this
|
|
case they are all of type String. Further the <code>relations</code> ParameterBag defines
|
|
the relationships, i.e. the product knows its articles. Note how the relation
|
|
is first defined in a relations ParameterBag and that the Parameter has
|
|
<code>Interpretation="Resource-Ref" Uom="Product"</code> attributes. Strolch has API
|
|
support for this, making it trivial to retrieve a dependency.</li><li>The <code>Article</code> element has two parameters <code>description</code> and <code>barcode</code>. Further it has
|
|
a reference to its Product.</li><li>The <code>Order</code> element doesn’t model the <code>date</code> and <code>state</code> fields as parameters, as
|
|
these are inherently part of an Order element. The Order does define two
|
|
references to customer and articles. A special case is the <code>quantities</code>
|
|
ParameterBag. This bag of parameters is used to store the per article quantity
|
|
for this order. With ParameterBags, you can eliminate the use of simple
|
|
aggregate classes, as is commonly used in object-oriented programming.</li><li>The <code>Customer</code> element models an <code>address</code> ParameterBag to store the address of a
|
|
customer. Using a separate bag allows for further more direct fields to stored
|
|
on the default parameters bag.</li></ul><p>Now that we have a basic understanding of te model, it is of far more interest
|
|
in how to create and interact with these elements at runtime. The following
|
|
listing will perform simple operations:</p><div class=highlight><pre style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=color:#66d9ef>public</span> <span style=color:#66d9ef>class</span> <span style=color:#a6e22e>Example</span> <span style=color:#f92672>{</span>
|
|
<span style=color:#66d9ef>public</span> <span style=color:#66d9ef>static</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>main</span><span style=color:#f92672>(</span>String<span style=color:#f92672>[]</span> args<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
|
|
|
|
<span style=color:#75715e>// keep IDs for later use
|
|
</span><span style=color:#75715e></span> String dafalganId<span style=color:#f92672>;</span>
|
|
String dafalgan1Id<span style=color:#f92672>;</span>
|
|
String dafalgan2Id<span style=color:#f92672>;</span>
|
|
String customerId<span style=color:#f92672>;</span>
|
|
String orderId<span style=color:#f92672>;</span>
|
|
|
|
<span style=color:#75715e>// first transaction to create the data
|
|
</span><span style=color:#75715e></span> <span style=color:#66d9ef>try</span> <span style=color:#f92672>(</span>StrolchTransaction tx <span style=color:#f92672>=</span> runtimeMock<span style=color:#f92672>.</span><span style=color:#a6e22e>openUserTx</span><span style=color:#f92672>(</span>certificate<span style=color:#f92672>,</span> <span style=color:#66d9ef>false</span><span style=color:#f92672>))</span> <span style=color:#f92672>{</span>
|
|
|
|
<span style=color:#75715e>/*
|
|
</span><span style=color:#75715e> * create a new product
|
|
</span><span style=color:#75715e> */</span>
|
|
Resource dafalgan <span style=color:#f92672>=</span> tx<span style=color:#f92672>.</span><span style=color:#a6e22e>getResourceTemplate</span><span style=color:#f92672>(</span><span style=color:#e6db74>"Product"</span><span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>);</span>
|
|
dafalgan<span style=color:#f92672>.</span><span style=color:#a6e22e>setName</span><span style=color:#f92672>(</span><span style=color:#e6db74>"Dafalgan 100mg"</span><span style=color:#f92672>);</span>
|
|
dafalgan<span style=color:#f92672>.</span><span style=color:#a6e22e>setString</span><span style=color:#f92672>(</span><span style=color:#e6db74>"description"</span><span style=color:#f92672>,</span> <span style=color:#e6db74>"Dafalgan is for pain."</span><span style=color:#f92672>);</span>
|
|
dafalgan<span style=color:#f92672>.</span><span style=color:#a6e22e>setString</span><span style=color:#f92672>(</span><span style=color:#e6db74>"color"</span><span style=color:#f92672>,</span> <span style=color:#e6db74>"Yellow"</span><span style=color:#f92672>);</span>
|
|
dafalgan<span style=color:#f92672>.</span><span style=color:#a6e22e>setString</span><span style=color:#f92672>(</span><span style=color:#e6db74>"form"</span><span style=color:#f92672>,</span> <span style=color:#e6db74>"flat"</span><span style=color:#f92672>);</span>
|
|
|
|
<span style=color:#75715e>/*
|
|
</span><span style=color:#75715e> * create articles
|
|
</span><span style=color:#75715e> */</span>
|
|
Resource dafalgan1 <span style=color:#f92672>=</span> tx<span style=color:#f92672>.</span><span style=color:#a6e22e>getResourceTemplate</span><span style=color:#f92672>(</span><span style=color:#e6db74>"Article"</span><span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>);</span>
|
|
dafalgan1<span style=color:#f92672>.</span><span style=color:#a6e22e>setName</span><span style=color:#f92672>(</span><span style=color:#e6db74>"Dafalgan 100mg 10 pce"</span><span style=color:#f92672>);</span>
|
|
dafalgan1<span style=color:#f92672>.</span><span style=color:#a6e22e>setString</span><span style=color:#f92672>(</span><span style=color:#e6db74>"description"</span><span style=color:#f92672>,</span> <span style=color:#e6db74>"This is pack with 10 pieces."</span><span style=color:#f92672>);</span>
|
|
dafalgan1<span style=color:#f92672>.</span><span style=color:#a6e22e>setString</span><span style=color:#f92672>(</span><span style=color:#e6db74>"barcode"</span><span style=color:#f92672>,</span> <span style=color:#e6db74>"654654"</span><span style=color:#f92672>);</span>
|
|
|
|
Resource dafalgan2 <span style=color:#f92672>=</span> tx<span style=color:#f92672>.</span><span style=color:#a6e22e>getResourceTemplate</span><span style=color:#f92672>(</span><span style=color:#e6db74>"Article"</span><span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>);</span>
|
|
dafalgan2<span style=color:#f92672>.</span><span style=color:#a6e22e>setName</span><span style=color:#f92672>(</span><span style=color:#e6db74>"Dafalgan 100mg 20 pce"</span><span style=color:#f92672>);</span>
|
|
dafalgan2<span style=color:#f92672>.</span><span style=color:#a6e22e>setString</span><span style=color:#f92672>(</span><span style=color:#e6db74>"description"</span><span style=color:#f92672>,</span> <span style=color:#e6db74>"This is pack with 20 pieces."</span><span style=color:#f92672>);</span>
|
|
dafalgan2<span style=color:#f92672>.</span><span style=color:#a6e22e>setString</span><span style=color:#f92672>(</span><span style=color:#e6db74>"barcode"</span><span style=color:#f92672>,</span> <span style=color:#e6db74>"654655"</span><span style=color:#f92672>);</span>
|
|
|
|
<span style=color:#75715e>/*
|
|
</span><span style=color:#75715e> * add reference to product
|
|
</span><span style=color:#75715e> */</span>
|
|
dafalgan1<span style=color:#f92672>.</span><span style=color:#a6e22e>setRelation</span><span style=color:#f92672>(</span><span style=color:#e6db74>"product"</span><span style=color:#f92672>,</span> dafalgan<span style=color:#f92672>);</span>
|
|
dafalgan2<span style=color:#f92672>.</span><span style=color:#a6e22e>setRelation</span><span style=color:#f92672>(</span><span style=color:#e6db74>"product"</span><span style=color:#f92672>,</span> dafalgan<span style=color:#f92672>);</span>
|
|
|
|
dafalgan<span style=color:#f92672>.</span><span style=color:#a6e22e>addRelation</span><span style=color:#f92672>(</span><span style=color:#e6db74>"articles"</span><span style=color:#f92672>,</span> dafalgan1<span style=color:#f92672>);</span>
|
|
dafalgan<span style=color:#f92672>.</span><span style=color:#a6e22e>addRelation</span><span style=color:#f92672>(</span><span style=color:#e6db74>"articles"</span><span style=color:#f92672>,</span> dafalgan2<span style=color:#f92672>);</span>
|
|
|
|
<span style=color:#75715e>/*
|
|
</span><span style=color:#75715e> * create a new customer
|
|
</span><span style=color:#75715e> */</span>
|
|
Resource customer1 <span style=color:#f92672>=</span> tx<span style=color:#f92672>.</span><span style=color:#a6e22e>getResourceTemplate</span><span style=color:#f92672>(</span><span style=color:#e6db74>"Customer"</span><span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>);</span>
|
|
customer1<span style=color:#f92672>.</span><span style=color:#a6e22e>setName</span><span style=color:#f92672>(</span><span style=color:#e6db74>"John Doe"</span><span style=color:#f92672>);</span>
|
|
|
|
<span style=color:#75715e>// set address
|
|
</span><span style=color:#75715e></span> ParameterBag addressBag <span style=color:#f92672>=</span> customer1<span style=color:#f92672>.</span><span style=color:#a6e22e>getParameterBag</span><span style=color:#f92672>(</span><span style=color:#e6db74>"address"</span><span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>);</span>
|
|
addressBag<span style=color:#f92672>.</span><span style=color:#a6e22e>setString</span><span style=color:#f92672>(</span><span style=color:#e6db74>"street"</span><span style=color:#f92672>,</span> <span style=color:#e6db74>"Main Str. 1"</span><span style=color:#f92672>);</span>
|
|
addressBag<span style=color:#f92672>.</span><span style=color:#a6e22e>setString</span><span style=color:#f92672>(</span><span style=color:#e6db74>"zip"</span><span style=color:#f92672>,</span> <span style=color:#e6db74>"1234"</span><span style=color:#f92672>);</span>
|
|
addressBag<span style=color:#f92672>.</span><span style=color:#a6e22e>setString</span><span style=color:#f92672>(</span><span style=color:#e6db74>"city"</span><span style=color:#f92672>,</span> <span style=color:#e6db74>"Hometown"</span><span style=color:#f92672>);</span>
|
|
addressBag<span style=color:#f92672>.</span><span style=color:#a6e22e>setString</span><span style=color:#f92672>(</span><span style=color:#e6db74>"country"</span><span style=color:#f92672>,</span> <span style=color:#e6db74>"Switzerland"</span><span style=color:#f92672>);</span>
|
|
|
|
<span style=color:#75715e>/*
|
|
</span><span style=color:#75715e> * create a new order
|
|
</span><span style=color:#75715e> */</span>
|
|
Order order <span style=color:#f92672>=</span> tx<span style=color:#f92672>.</span><span style=color:#a6e22e>getOrderTemplate</span><span style=color:#f92672>(</span><span style=color:#e6db74>"Order"</span><span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>);</span>
|
|
order<span style=color:#f92672>.</span><span style=color:#a6e22e>setName</span><span style=color:#f92672>(</span><span style=color:#e6db74>"Order for "</span> <span style=color:#f92672>+</span> customer1<span style=color:#f92672>.</span><span style=color:#a6e22e>getName</span><span style=color:#f92672>());</span>
|
|
order<span style=color:#f92672>.</span><span style=color:#a6e22e>setDate</span><span style=color:#f92672>(</span>LocalDate<span style=color:#f92672>.</span><span style=color:#a6e22e>of</span><span style=color:#f92672>(</span>2021<span style=color:#f92672>,</span> 2<span style=color:#f92672>,</span> 1<span style=color:#f92672>));</span>
|
|
order<span style=color:#f92672>.</span><span style=color:#a6e22e>setState</span><span style=color:#f92672>(</span>State<span style=color:#f92672>.</span><span style=color:#a6e22e>PLANNED</span><span style=color:#f92672>);</span>
|
|
|
|
<span style=color:#75715e>// store reference to customer
|
|
</span><span style=color:#75715e></span> order<span style=color:#f92672>.</span><span style=color:#a6e22e>setRelation</span><span style=color:#f92672>(</span><span style=color:#e6db74>"customer"</span><span style=color:#f92672>,</span> customer1<span style=color:#f92672>);</span>
|
|
|
|
StringListParameter orderArticlesP <span style=color:#f92672>=</span> order<span style=color:#f92672>.</span><span style=color:#a6e22e>getRelationsParam</span><span style=color:#f92672>(</span><span style=color:#e6db74>"articles"</span><span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>);</span>
|
|
ParameterBag quantitiesBag <span style=color:#f92672>=</span> order<span style=color:#f92672>.</span><span style=color:#a6e22e>getParameterBag</span><span style=color:#f92672>(</span><span style=color:#e6db74>"quantities"</span><span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>);</span>
|
|
FloatParameter quantityT <span style=color:#f92672>=</span> quantitiesBag<span style=color:#f92672>.</span><span style=color:#a6e22e>removeParameter</span><span style=color:#f92672>(</span><span style=color:#e6db74>"quantity"</span><span style=color:#f92672>);</span>
|
|
|
|
<span style=color:#75715e>// order quantity of 20 for Dafalgan 1
|
|
</span><span style=color:#75715e></span> quantitiesBag<span style=color:#f92672>.</span><span style=color:#a6e22e>setDouble</span><span style=color:#f92672>(</span>dafalgan1<span style=color:#f92672>.</span><span style=color:#a6e22e>getId</span><span style=color:#f92672>(),</span> 20<span style=color:#f92672>);</span>
|
|
order<span style=color:#f92672>.</span><span style=color:#a6e22e>addRelation</span><span style=color:#f92672>(</span><span style=color:#e6db74>"articles"</span><span style=color:#f92672>,</span> dafalgan1<span style=color:#f92672>);</span>
|
|
|
|
<span style=color:#75715e>// set order quantity of 10 for Dafalgan 2
|
|
</span><span style=color:#75715e></span> quantitiesBag<span style=color:#f92672>.</span><span style=color:#a6e22e>setDouble</span><span style=color:#f92672>(</span>dafalgan2<span style=color:#f92672>.</span><span style=color:#a6e22e>getId</span><span style=color:#f92672>(),</span> 20<span style=color:#f92672>);</span>
|
|
order<span style=color:#f92672>.</span><span style=color:#a6e22e>addRelation</span><span style=color:#f92672>(</span><span style=color:#e6db74>"articles"</span><span style=color:#f92672>,</span> dafalgan2<span style=color:#f92672>);</span>
|
|
|
|
<span style=color:#75715e>// keep IDs for later use
|
|
</span><span style=color:#75715e></span> dafalganId <span style=color:#f92672>=</span> dafalgan<span style=color:#f92672>.</span><span style=color:#a6e22e>getId</span><span style=color:#f92672>();</span>
|
|
dafalgan1Id <span style=color:#f92672>=</span> dafalgan1<span style=color:#f92672>.</span><span style=color:#a6e22e>getId</span><span style=color:#f92672>();</span>
|
|
dafalgan2Id <span style=color:#f92672>=</span> dafalgan2<span style=color:#f92672>.</span><span style=color:#a6e22e>getId</span><span style=color:#f92672>();</span>
|
|
customerId <span style=color:#f92672>=</span> customer1<span style=color:#f92672>.</span><span style=color:#a6e22e>getId</span><span style=color:#f92672>();</span>
|
|
orderId <span style=color:#f92672>=</span> order<span style=color:#f92672>.</span><span style=color:#a6e22e>getId</span><span style=color:#f92672>();</span>
|
|
|
|
<span style=color:#75715e>/*
|
|
</span><span style=color:#75715e> * persist
|
|
</span><span style=color:#75715e> */</span>
|
|
tx<span style=color:#f92672>.</span><span style=color:#a6e22e>add</span><span style=color:#f92672>(</span>dafalgan<span style=color:#f92672>);</span>
|
|
tx<span style=color:#f92672>.</span><span style=color:#a6e22e>add</span><span style=color:#f92672>(</span>dafalgan1<span style=color:#f92672>);</span>
|
|
tx<span style=color:#f92672>.</span><span style=color:#a6e22e>add</span><span style=color:#f92672>(</span>dafalgan2<span style=color:#f92672>);</span>
|
|
tx<span style=color:#f92672>.</span><span style=color:#a6e22e>add</span><span style=color:#f92672>(</span>customer1<span style=color:#f92672>);</span>
|
|
tx<span style=color:#f92672>.</span><span style=color:#a6e22e>add</span><span style=color:#f92672>(</span>order<span style=color:#f92672>);</span>
|
|
|
|
<span style=color:#75715e>// commit
|
|
</span><span style=color:#75715e></span> tx<span style=color:#f92672>.</span><span style=color:#a6e22e>commitOnClose</span><span style=color:#f92672>();</span>
|
|
<span style=color:#f92672>}</span>
|
|
<span style=color:#f92672>}</span>
|
|
<span style=color:#f92672>}</span>
|
|
</code></pre></div><div class=highlight><pre style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=color:#66d9ef>class</span> <span style=color:#a6e22e>Scratch</span> <span style=color:#f92672>{</span>
|
|
<span style=color:#66d9ef>public</span> <span style=color:#66d9ef>static</span> <span style=color:#66d9ef>void</span> <span style=color:#a6e22e>main</span><span style=color:#f92672>(</span>String<span style=color:#f92672>[]</span> args<span style=color:#f92672>)</span> <span style=color:#f92672>{</span>
|
|
|
|
<span style=color:#75715e>// keep IDs for later use
|
|
</span><span style=color:#75715e></span> String dafalganId<span style=color:#f92672>;</span>
|
|
String dafalgan1Id<span style=color:#f92672>;</span>
|
|
String dafalgan2Id<span style=color:#f92672>;</span>
|
|
String customerId<span style=color:#f92672>;</span>
|
|
String orderId<span style=color:#f92672>;</span>
|
|
|
|
<span style=color:#75715e>//
|
|
</span><span style=color:#75715e></span> <span style=color:#75715e>// .. snip ...
|
|
</span><span style=color:#75715e></span> <span style=color:#75715e>//
|
|
</span><span style=color:#75715e></span>
|
|
<span style=color:#75715e>// second transaction to query the data
|
|
</span><span style=color:#75715e></span> <span style=color:#66d9ef>try</span> <span style=color:#f92672>(</span>StrolchTransaction tx <span style=color:#f92672>=</span> runtimeMock<span style=color:#f92672>.</span><span style=color:#a6e22e>openUserTx</span><span style=color:#f92672>(</span>certificate<span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>))</span> <span style=color:#f92672>{</span>
|
|
|
|
<span style=color:#75715e>// get order
|
|
</span><span style=color:#75715e></span> Order order <span style=color:#f92672>=</span> tx<span style=color:#f92672>.</span><span style=color:#a6e22e>getOrderBy</span><span style=color:#f92672>(</span><span style=color:#e6db74>"Order"</span><span style=color:#f92672>,</span> orderId<span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>);</span>
|
|
assertEquals<span style=color:#f92672>(</span><span style=color:#e6db74>"Order for John Doe"</span><span style=color:#f92672>,</span> order<span style=color:#f92672>.</span><span style=color:#a6e22e>getName</span><span style=color:#f92672>());</span>
|
|
|
|
<span style=color:#75715e>// get customer
|
|
</span><span style=color:#75715e></span> Resource customer <span style=color:#f92672>=</span> tx<span style=color:#f92672>.</span><span style=color:#a6e22e>getResourceByRelation</span><span style=color:#f92672>(</span>order<span style=color:#f92672>,</span> <span style=color:#e6db74>"customer"</span><span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>);</span>
|
|
assertEquals<span style=color:#f92672>(</span><span style=color:#e6db74>"John Doe"</span><span style=color:#f92672>,</span> customer<span style=color:#f92672>.</span><span style=color:#a6e22e>getName</span><span style=color:#f92672>());</span>
|
|
|
|
<span style=color:#75715e>// get articles
|
|
</span><span style=color:#75715e></span> List<span style=color:#f92672><</span>Resource<span style=color:#f92672>></span> articles <span style=color:#f92672>=</span> tx<span style=color:#f92672>.</span><span style=color:#a6e22e>getResourcesByRelation</span><span style=color:#f92672>(</span>order<span style=color:#f92672>,</span> <span style=color:#e6db74>"articles"</span><span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>);</span>
|
|
assertEquals<span style=color:#f92672>(</span>2<span style=color:#f92672>,</span> articles<span style=color:#f92672>.</span><span style=color:#a6e22e>size</span><span style=color:#f92672>());</span>
|
|
|
|
<span style=color:#75715e>// get products by stream
|
|
</span><span style=color:#75715e></span> List<span style=color:#f92672><</span>Resource<span style=color:#f92672>></span> products <span style=color:#f92672>=</span> articles<span style=color:#f92672>.</span><span style=color:#a6e22e>stream</span><span style=color:#f92672>().</span><span style=color:#a6e22e>map</span><span style=color:#f92672>(</span>a <span style=color:#f92672>-></span> tx<span style=color:#f92672>.</span><span style=color:#a6e22e>getResourceByRelation</span><span style=color:#f92672>(</span>a<span style=color:#f92672>,</span> <span style=color:#e6db74>"product"</span><span style=color:#f92672>,</span> <span style=color:#66d9ef>true</span><span style=color:#f92672>))</span>
|
|
<span style=color:#f92672>.</span><span style=color:#a6e22e>distinct</span><span style=color:#f92672>().</span><span style=color:#a6e22e>collect</span><span style=color:#f92672>(</span>Collectors<span style=color:#f92672>.</span><span style=color:#a6e22e>toList</span><span style=color:#f92672>());</span>
|
|
assertEquals<span style=color:#f92672>(</span>1<span style=color:#f92672>,</span> products<span style=color:#f92672>.</span><span style=color:#a6e22e>size</span><span style=color:#f92672>());</span>
|
|
|
|
<span style=color:#75715e>// search for all orders in state PLANNED and with customer
|
|
</span><span style=color:#75715e></span> List<span style=color:#f92672><</span>Order<span style=color:#f92672>></span> orders <span style=color:#f92672>=</span> <span style=color:#66d9ef>new</span> OrderSearch<span style=color:#f92672>().</span><span style=color:#a6e22e>types</span><span style=color:#f92672>(</span><span style=color:#e6db74>"Order"</span><span style=color:#f92672>).</span><span style=color:#a6e22e>stateIsIn</span><span style=color:#f92672>(</span>State<span style=color:#f92672>.</span><span style=color:#a6e22e>PLANNED</span><span style=color:#f92672>)</span>
|
|
<span style=color:#f92672>.</span><span style=color:#a6e22e>where</span><span style=color:#f92672>(</span>ExpressionsSupport<span style=color:#f92672>.</span><span style=color:#a6e22e>relationParam</span><span style=color:#f92672>(</span><span style=color:#e6db74>"customer"</span><span style=color:#f92672>).</span><span style=color:#a6e22e>isEqualTo</span><span style=color:#f92672>(</span>customerId<span style=color:#f92672>)).</span><span style=color:#a6e22e>search</span><span style=color:#f92672>(</span>tx<span style=color:#f92672>).</span><span style=color:#a6e22e>toList</span><span style=color:#f92672>();</span>
|
|
assertEquals<span style=color:#f92672>(</span>1<span style=color:#f92672>,</span> orders<span style=color:#f92672>.</span><span style=color:#a6e22e>size</span><span style=color:#f92672>());</span>
|
|
<span style=color:#f92672>}</span>
|
|
<span style=color:#f92672>}</span>
|
|
<span style=color:#f92672>}</span>
|
|
</code></pre></div><div class="notices tip"><p>Note: Checkout <a href=https://github.com/strolch-li/strolch/blob/develop/li.strolch.service/src/test/resources/transienttest/data/example-model.xml target=_blank>example-model.xml</a> and <a href=https://github.com/strolch-li/strolch/blob/develop/li.strolch.service/src/test/java/li/strolch/service/SimpleModelTest.java target=_blank>SimpleModelTest.java</a> for these examples.</p></div><div class="notices tip"><p>There is an XML Schema which defines the model in XML: <a href=/xsd/StrolchModel-1.6.xsd target=_blank>StrolchModel-1.6.xsd</a></p></div><p>Here is an example of all the possible elements in Strolch:</p><div class=highlight><pre style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-xml data-lang=xml><span style=color:#f92672><StrolchModel</span> <span style=color:#a6e22e>xmlns:xsi=</span><span style=color:#e6db74>"http://www.w3.org/2001/XMLSchema-instance"</span>
|
|
<span style=color:#a6e22e>xmlns=</span><span style=color:#e6db74>"https://strolch.li/xsd/StrolchModel-1.6.xsd"</span>
|
|
<span style=color:#a6e22e>xsi:schemaLocation=</span><span style=color:#e6db74>"https://strolch.li/xsd/StrolchModel-1.6.xsd StrolchModel-1.6.xsd"</span><span style=color:#f92672>></span>
|
|
|
|
<span style=color:#f92672><IncludeFile</span> <span style=color:#a6e22e>file=</span><span style=color:#e6db74>"Include1.xml"</span><span style=color:#f92672>/></span>
|
|
|
|
<span style=color:#f92672><Order</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@test1"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Test Order"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Order"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Version</span> <span style=color:#a6e22e>Version=</span><span style=color:#e6db74>"0"</span> <span style=color:#a6e22e>CreatedBy=</span><span style=color:#e6db74>"test"</span> <span style=color:#a6e22e>Created=</span><span style=color:#e6db74>"2012-11-30T18:12:05.628+01:00"</span> <span style=color:#a6e22e>UpdatedBy=</span><span style=color:#e6db74>"test"</span> <span style=color:#a6e22e>Updated=</span><span style=color:#e6db74>"2012-11-30T18:12:05.628+01:00"</span> <span style=color:#a6e22e>Deleted=</span><span style=color:#e6db74>"false"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@bag01"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Test Bag"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"TestBag"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@param1"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Boolean Param"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Boolean"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"true"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@bag01"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Test Bag"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"TestBag"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@param1"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Boolean Param"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Boolean"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"true"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672><Policies></span>
|
|
<span style=color:#f92672><Policy</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"PlanningPolicy"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"key:SimplePlanning"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><Policy</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"ConfirmationPolicy"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"key:NoConfirmation"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></Policies></span>
|
|
<span style=color:#f92672></Order></span>
|
|
|
|
<span style=color:#f92672><Resource</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"MyTestResource"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Test Name"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"TestType"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Version</span> <span style=color:#a6e22e>Version=</span><span style=color:#e6db74>"0"</span> <span style=color:#a6e22e>CreatedBy=</span><span style=color:#e6db74>"test"</span> <span style=color:#a6e22e>Created=</span><span style=color:#e6db74>"2012-11-30T18:12:05.628+01:00"</span> <span style=color:#a6e22e>UpdatedBy=</span><span style=color:#e6db74>"test"</span> <span style=color:#a6e22e>Updated=</span><span style=color:#e6db74>"2012-11-30T18:12:05.628+01:00"</span> <span style=color:#a6e22e>Deleted=</span><span style=color:#e6db74>"false"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@bag01"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Test Bag 01"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"TestBag"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@param1"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Boolean Param"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Boolean"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"true"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@bag02"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Test Bag 02"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"TestBag"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@param1"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Boolean Param"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Boolean"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"true"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672><TimedState</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@booleanState"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Boolean State"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Boolean"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Value</span> <span style=color:#a6e22e>Time=</span><span style=color:#e6db74>"1970-01-01T00:02:00.000+01:00"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"false"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></TimedState></span>
|
|
<span style=color:#f92672><Policies></span>
|
|
<span style=color:#f92672><Policy</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"PlanningPolicy"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"key:SimplePlanning"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><Policy</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"ConfirmationPolicy"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"key:NoConfirmation"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></Policies></span>
|
|
<span style=color:#f92672></Resource></span>
|
|
|
|
<span style=color:#f92672><Activity</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"activity_1"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Activity"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"parentType"</span> <span style=color:#a6e22e>TimeOrdering=</span><span style=color:#e6db74>"Series"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Version</span> <span style=color:#a6e22e>Version=</span><span style=color:#e6db74>"0"</span> <span style=color:#a6e22e>CreatedBy=</span><span style=color:#e6db74>"test"</span> <span style=color:#a6e22e>Created=</span><span style=color:#e6db74>"2012-11-30T18:12:05.628+01:00"</span> <span style=color:#a6e22e>UpdatedBy=</span><span style=color:#e6db74>"test"</span> <span style=color:#a6e22e>Updated=</span><span style=color:#e6db74>"2012-11-30T18:12:05.628+01:00"</span> <span style=color:#a6e22e>Deleted=</span><span style=color:#e6db74>"false"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@bag01"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Test Bag"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"TestBag"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@param1"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Boolean Param"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Boolean"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"true"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672><Policies></span>
|
|
<span style=color:#f92672><Policy</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"PlanningPolicy"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"key:SimplePlanning"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><Policy</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"ConfirmationPolicy"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"key:NoConfirmation"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></Policies></span>
|
|
<span style=color:#f92672><Action</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"action_1"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Action 1"</span> <span style=color:#a6e22e>ResourceId=</span><span style=color:#e6db74>"dummyId"</span> <span style=color:#a6e22e>ResourceType=</span><span style=color:#e6db74>"dummyType"</span> <span style=color:#a6e22e>State=</span><span style=color:#e6db74>"Created"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Use"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@bag01"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Test Bag"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"TestBag"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@param1"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Boolean Param"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Boolean"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"true"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672><Policies></span>
|
|
<span style=color:#f92672><Policy</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"PlanningPolicy"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"key:SimplePlanning"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><Policy</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"ConfirmationPolicy"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"key:NoConfirmation"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></Policies></span>
|
|
<span style=color:#f92672><ValueChange</span> <span style=color:#a6e22e>StateId=</span><span style=color:#e6db74>"dummyId"</span> <span style=color:#a6e22e>Time=</span><span style=color:#e6db74>"2012-11-30T18:12:05.628+01:00"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"5"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Integer"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><ValueChange</span> <span style=color:#a6e22e>StateId=</span><span style=color:#e6db74>"dummyId"</span> <span style=color:#a6e22e>Time=</span><span style=color:#e6db74>"2012-11-30T18:12:06.628+01:00"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"6"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Integer"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></Action></span>
|
|
<span style=color:#f92672><Activity</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"child_activity"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Child Activity"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"childType"</span> <span style=color:#a6e22e>TimeOrdering=</span><span style=color:#e6db74>"Series"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><ParameterBag</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@bag01"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Test Bag"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"TestBag"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><Parameter</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"@param1"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Boolean Param"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Boolean"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"true"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></ParameterBag></span>
|
|
<span style=color:#f92672><Policies></span>
|
|
<span style=color:#f92672><Policy</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"PlanningPolicy"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"key:SimplePlanning"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><Policy</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"ConfirmationPolicy"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"key:NoConfirmation"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></Policies></span>
|
|
<span style=color:#f92672><Action</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"action_2"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Action 2"</span> <span style=color:#a6e22e>ResourceId=</span><span style=color:#e6db74>"dummyId"</span> <span style=color:#a6e22e>ResourceType=</span><span style=color:#e6db74>"dummyType"</span> <span style=color:#a6e22e>State=</span><span style=color:#e6db74>"Planned"</span>
|
|
<span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Use"</span><span style=color:#f92672>></span>
|
|
<span style=color:#f92672><ValueChange</span> <span style=color:#a6e22e>StateId=</span><span style=color:#e6db74>"dummyId"</span> <span style=color:#a6e22e>Time=</span><span style=color:#e6db74>"2012-11-30T18:12:05.628+01:00"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"5"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Integer"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672><ValueChange</span> <span style=color:#a6e22e>StateId=</span><span style=color:#e6db74>"dummyId"</span> <span style=color:#a6e22e>Time=</span><span style=color:#e6db74>"2012-11-30T18:12:06.628+01:00"</span> <span style=color:#a6e22e>Value=</span><span style=color:#e6db74>"6"</span> <span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Integer"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></Action></span>
|
|
<span style=color:#f92672><Action</span> <span style=color:#a6e22e>Id=</span><span style=color:#e6db74>"action_3"</span> <span style=color:#a6e22e>Name=</span><span style=color:#e6db74>"Action 3"</span> <span style=color:#a6e22e>ResourceId=</span><span style=color:#e6db74>"dummyId"</span> <span style=color:#a6e22e>ResourceType=</span><span style=color:#e6db74>"dummyType"</span> <span style=color:#a6e22e>State=</span><span style=color:#e6db74>"Created"</span>
|
|
<span style=color:#a6e22e>Type=</span><span style=color:#e6db74>"Use"</span><span style=color:#f92672>/></span>
|
|
<span style=color:#f92672></Activity></span>
|
|
<span style=color:#f92672></Activity></span>
|
|
|
|
<span style=color:#f92672></StrolchModel></span>
|
|
</code></pre></div><footer class=footline></footer></div></div><div id=navigation><a class="nav nav-prev" href=/documentation/architecture/ title=Architecture><i class="fa fa-chevron-left"></i></a><a class="nav nav-next" href=/documentation/do-and-donts/ title="Do and Don't" style=margin-right:0><i class="fa fa-chevron-right"></i></a></div></section><div style=left:-1000px;overflow:scroll;position:absolute;top:-1000px;border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px><div style=border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px></div></div><script src=/js/clipboard.min.js?1660745009></script><script src=/js/perfect-scrollbar.min.js?1660745009></script><script src=/js/perfect-scrollbar.jquery.min.js?1660745009></script><script src=/js/jquery.sticky.js?1660745009></script><script src=/js/featherlight.min.js?1660745009></script><script src=/js/highlight.pack.js?1660745009></script><script>hljs.initHighlightingOnLoad();</script><script src=/js/modernizr.custom-3.6.0.js?1660745009></script><script src=/js/learn.js?1660745009></script><script src=/js/hugo-learn.js?1660745009></script><script src=/mermaid/mermaid.js?1660745009></script><script>mermaid.initialize({startOnLoad:true});</script><script type=text/javascript>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]);_paq.push(["setCookieDomain","*.strolch.li"]);_paq.push(['trackPageView']);_paq.push(['enableLinkTracking']);(function(){var u="https://piwik.eitchnet.ch/";_paq.push(['setTrackerUrl',u+'matomo.php']);_paq.push(['setSiteId','2']);var d=document,g=d.createElement('script'),s=d.getElementsByTagName('script')[0];g.type='text/javascript';g.async=true;g.src=u+'matomo.js';s.parentNode.insertBefore(g,s);})();</script></body></html> |