Newer
Older

Sebastian Bergemann
committed
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252"/>
<title></title>
<meta name="generator" content="LibreOffice 6.0.4.2 (Windows)"/>
<meta name="created" content="00:00:00"/>
<meta name="changed" content="2018-06-12T17:06:10.556000000"/>
<meta name="created" content="00:00:00">
</head>
<body lang="en-US" dir="ltr">
<h1>Developer Documentation for <i>Reuse Functionality
(</i><i>org.fortiss.tooling.ext.reuse</i><i>)</i></h1>
<p>This plugin contains the basic functionality of reuse in AF3 projects.
With it a user can create reuse libraries that are stored in a separate local project.
These libraries can store supported reuse elements (which are standard AF3 elements to
which a reuse specification is added; see below). The stored reuse elements are displayed in the model

Sebastian Bergemann
committed
elements view and can be drag & dropped from there in AF3 projects. They are still linked
with their libraries, which is why the elements can be updated at any time from the library
and vice versa (update the original element inside the library). Currently supported AF3
elements for reuse are: components, tasks, requirements and entries of data dictionaries (functions, structures, enumerations).</p>
<p>If an AF3 element supports reuse libraries, it can get a reuse specification (not directly visible in AF3).
As soon as it has at least one reuse specification, the AF3 element is now a reuse element. It looks still
like the usual AF3 element and can also be used like before, but it has now at least one reference to a reuse
library via this reuse specification (or several reuse libraries if it has several reuse specifications).
If an AF3 element has a reuse specification, it means that an identical AF3 element ("deep copy") exists now
in this referenced reuse library. It is now possible to reuse this AF3 element from the reuse library and
insert it again in the same project but also in other projects of the same workspace or even of other workspaces
(and exchange updates). </p>
<p>Through the UUIDs and the reuse specifications it is ensured that you can only propagate modifications
between (reuse) elements that are connected due to their (reuse) origin. </p>

Sebastian Bergemann
committed
<h1><font size="5" style="font-size: 20pt">Package description</font></h1>
<p>The plugin contains the following packages (besides standard ones):
</p>
<ul>
<li><tt>reuse.compose</tt>: compositors for reuse library and its file project.</li>
<li><tt>reuse.service</tt>: provider (service) for other AF3 elements to be able to
support the reuse functionality. If a new element should be supported, it should use
this service.</li>
<li><tt>reuse.storage</tt>: separate file handling/storage of reuse libraries.</li>
<li><tt>reuse.utils</tt>: utility functions for reuse elements and actions (including
the model element factory).</li>
</ul>
<h1><font size="5" style="font-size: 20pt">Metamodel description</font></h1>
<p>The following main meta-model classes are contained in this
plugin:</p>
<ul>
<li><tt>ReuseLibrary</tt>: the root class of a library, which has an UUID and a
list of all contained reuse elements.</li>
<li><tt>ReuseElementSpec</tt>: the specification that is added to an element
as soon as it is used as reuse element (is added to a reuse library). Contains
information about the element itself, about the connected library, and about
the reuse process (last update, hash).</li>
</ul>
</ul>
</body>
</html>