Skip to content
Snippets Groups Projects
documentation.html 3.48 KiB
Newer Older
<!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
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>

<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>