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:
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.
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)
Several development tool features are available on eap-files as shown in the screenshot below and explained in the following.
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.
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.
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!
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 (Diagram → Properties... → Elements → Tags).
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.
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.
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.
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.
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.
This action shows some meta information about the selected model element as shown in the screenshot below.