Development Tools

Overview

The YAKINDU EA-Bridge contains a development tools feature that can be installed. It provides some functionality that is useful when developing tools with the YAKINDU EA-Bridge:

Experimental Features

The YAKINDU EA-Bridge does not yet support all UML model elements as described in the introduction. Several features, such as behavioral model elements, are currently under development and not yet stable or tested. Such features can be enabled with the Experimental Features setting the the global preferences (shown in the screenshot below) as well as in resource load options.

Development Tools preferences

One example of such an experimental feature is read-only access for interactions: Interaction, Lifeline, and Message. The support may be partial, i.e. only parts of the model elements are loaded as shown in the screenshot below. ''Gate''s, ''InteractionOperand''s, ''Fragment''s, as well as write support, for instance, are still missing.

(Please note that in version 3.0.0, interactions are not yet included; if you desperately need interactions, please contact us and/or use a version prior to 3.0.0)

Example model with interactions (experimental feature)

Development Tools on EAP-Files

Several development tool features are available on eap-files as shown in the screenshot below and explained in the following.

Development tools available on eap-files

Open Element by ID or GUID

This action prompts for an element-specific ID or globally unique ID (GUID) and, if it exists, opens the selected file and selects the corresponding element within the UML Model Editor.

Dialog to open element by ID or GUID

Dump Database into Text File

This action dumps the contents of all relevant database tables into a text file. By the way, it is also possible to view the database textually by opening an eap-file with the text editor.

Change Tagged Values Length Limit

In EA, tagged values of elements, attributes, operations, and connectors are stored in table columns of type VARCHAR(255) which means that the values are cropped at length 255 if they are larger. Parameter tagged values, however, are not restricted in size. This option allows to change the database columns for tagged values of attributes, operations, and connectors to LONGVARCHAR with a limit between 255 an 65536. Keep in mind that this will change the underlying database schema and might cause other side effects! Proceed at your own risk and make a backup first!

Change tagged values length limit

As far as we tested these database schema changes, no side effects occurred for us with the first three cases; the EA as well as the Eclipse UML2 tooling works fine with such extended tagged values / EAnnotations. Changing the size for element tagged values is not supported because it causes side-effects when using such models with the EA: tagged values can not be shown in diagrams anymore (DiagramProperties...ElementsTags).

SQL Console

EA models are stored within databases, as already explained in the introduction. The YAKINDU EA-Bridge provides a simple SQL console for querying the database of local eap-files. This is useful for investigating the low-level data of EA models without externally opening a database client.

SQL Console

It is not only possible to query existing data from the database, the SQL console also allows to modify and delete existing and insert new data. WARNING: use write access with caution and at your own risk! If you make changes to your database that cannot be interpreted by the EA, you may break your model! Make also sure that the file is not opened elsewhere.

Development Tools on EA Model Elements

Several development tool features are available directly on EA model elements as shown in the screenshot below and explained in the following, except for Open Element by ID or GUID which was already explained above because it may also be applied on eap-files.

Development tools available on EA model elements

Resolve Element Recursively

The entire contents of the selected EA model element is resolved recursively via EcoreUtil.resolveAll(EObject). All cross-references will be resolved and, in case of lazy loading, the entire sub-model is loaded.

Reload Element Children

The entire contents of the selected EA model element is unloaded and then re-loaded. This is useful when developing element contributors or when modifying the model externally with disabled automated refresh.

Please note that cross-references within the model might be broken after re-loading parts of a model in which cross-reference targets are located! Moreover, subsequent lazy loading may be slower than initial non-lazy loading of your model.

EA Element Information

This action shows some meta information about the selected model element as shown in the screenshot below.

EA element information for a package