FuGE | Building extensions to FuGE.ProtocolApplication (M2 version)

Extending FuGE ProtocolApplication

Three diagrams in which ProtocolApplication participates are displayed below:


Figure 1. The main ProtocolApplication diagram.


Figure 2. The associations from ProtocolApplication to Materials and Data.


Figure 3. The Parameterizable classes in the FuGE Protocol package.


Figure 1 displays the main features of ProtocolApplication. ProtocolApplication is an abstract class and should be extended. Note that of ProtocolApplication's associations, only the association to Protocol is abstract. This means that the other associations should be instantiated as they are, and should not be extended. The association to Protocol is abstract and should be extended, for example by giving an association to a specific subclass of Protocol, as shown below:


Figure 4. An example of a ColumnProtocolApplication which references a specific ColumnProtocol. The association +columnProtocol inherits from the +protocol association.

There is an alternative to defining a new subclass of Protocol, in that FuGE supplies a generic extension of Protocol. The GenericProtocol class [link to come] can be used without extension to describe a protocol. The details of the protocol are supplied as plain text entered by the user in a series of GenericAction steps, or using terms from an ontology. For a guide to correct usage of GenericProtocols, see the FuGE guide [link to come].

An association from a subclass of ProtocolApplication can be created to GenericProtocol, as follows:


Figure 5. An association created from an extension of ProtocolApplication (GelScanApplication) to the FuGE GenericProtocol class.


Defining specific inputs and outputs for a ProtocolApplication

Figure 2 displays the inputs and outputs that a ProtocolApplication can have, as either Materials and/or Data. It is expected that Materials and Data will both be extended. A guide to extending Material [link to come] and Data [link to come] is provided.


Figure 6. A notional example of extending ProtocolApplication. GelScanApplication has a defined input of an area of Gel2D (subclass of Material), and produces as output an Image (subclass of ExternalData). Note that, for example, +inputGel inherits from +inputMaterials (and all other associations inherit from the corresponding association) but it is not shown for clarity.


SourceForge.net Logo Questions or comments write to fuge-web-support at lists.sourceforge.net.