Skip to content
Snippets Groups Projects
Commit 2d5a3d1b authored by Simon Barner's avatar Simon Barner
Browse files

Kernel Metamodel documentation

* Add UML diagram
* Description of metaclasses
* Clarify that there are two constraint services

Issue-Ref: 3401
Issue-Url: https://af3-developer.fortiss.org/issues/3401



Signed-off-by: default avatarSimon Barner <barner@fortiss.org>
parent 7877e4d2
No related branches found
No related tags found
1 merge request!113401 developer documentation kernel
documentation.html 33dd7b679fd34f6c10d31776950fb9a01607f8a6 YELLOW
documentation.html 4c4cf4d0d4ffda3e0f0f29b52eab549340c030a2 YELLOW
......@@ -26,9 +26,59 @@ The kernel also provides abstract base implementations for most of the handler i
which are located in the <code>org.fortiss.tooling.kernel.extension.base</code> package.
</p>
<h2> Metamodel description </h2>
<h3>Tooling Kernel Metamodel Classes</h3>
<img alt="UML diagram of Tooling Kernel" src="figures/kernel.png"/>
<p>The root package of the tooling kernel metamodel consists of the following classes:</p>
<ul>
<li><code>IIdLabeled</code>: Model elements implementing this interface have a unique identifier.</li>
<li><code>INamedElement</code>: Model elements implementing this interface have a unique id and a name.</li>
<li><code>INamedCommentedElement</code>: Model elements implementing this interface have a
unique id, a name and a comment.</li>
<li><code>IProjectRootElement</code>: Super class of all root elements contained in the project.</li>
<li><code>ILibraryRootElement</code>: Super class of all root elements contained in the libraries.</li>
<li><code>ILibrary</code>: Super class of all libraries.</li>
<li><code>ILibraryElement</code>: Super class of all elements contained in a library.</li>
<li><code>ILibraryPackage</code>: Super class of all library package (that can contain library
elements and/or sub-packages)</li>
<li><code>ILibraryElementReference</code>: Super class of all references to elements contained
in a library.</li>
<li><code>IExternalDocumentReference</code>: Reference to an external document.</li>
<li><code>ISpeciallyCopyiable</code>: Interface to hook code to handle special cases for copy and paste.</li>
</ul>
<p>The <code>constraints</code> sub-packages contains the following meta-classes required for the
<code>IConstraintService</code>-based constraint verification mechanism (see below):</p>
<ul>
<li><code>IConstrained</code>: Element which can be constrained. Keeps track of all the constraints
which apply to it.</li>
<li><code>ConstraintInstance</code>: Constraint &quot;instance&quot;: link between the constrained
element(s) and the constraint. Explicitly represented in the model in order to store the status and the
checksum(s) of the constrained element(s).</li>
<li><code>IConstraintInstanceStatus</code>: Status of verification of a constraint. Typically,
should denote &quot;Success&quot;, &quot;Fail&quot;, &quot;Outdated&quot; or &quot;Error&quot; with
possible specializations depending on the particular constraints.</li>
<li><code>OutdatedConstraintInstanceStatus</code>: Status that indicates that the verification
of a constraint is outdated.</li>
<li><code>FailedConstraintInstanceStatus</code>: Status that indicates that the verification of a
constraint has failed.</li>
<li><code>ErrorConstraintInstanceStatus</code>: Status that indicates that an error has occurred
during the verification of a constraint.</li>
<li><code>SuccessConstraintInstanceStatus</code>: Status that indicates that a constraint has
successfully been verified.</li>
<li><code>IConstraintInstanceContainer</code>: Container to group multiple constraint instances.</li>
<li><code>ConstraintNameToChecksum</code>: Map type to map constraint names to checksum values.</li>
</ul>
<h2>Package Overview</h2>
In the following, we describe the top-level packages of the Tooling Kernel plugin.
<h3>constraint</h3>
Package for constraint checkers of the kernel.
<p>Package providing several basic <code>IConstraintChecker</code>-based constraint checkers
(supported by <code>IConstraintCheckerService</code>).</p>
Note that the kernel also provides <code>IConstraint</code>-based constraints (supported by
<code>IConstraintService</code>).</p>
<h3>extension</h3>
<p>
......@@ -154,4 +204,5 @@ kernel service.
<h3>utils</h3>
Utility methods provided by the kernel.
</body></html>
\ No newline at end of file
</body>
</html>
\ No newline at end of file
This diff is collapsed.
org.fortiss.tooling.kernel/html/developer/figures/kernel.png

52.6 KiB

This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment