Date: Fri, 29 Mar 2024 00:06:14 +0100 (CET) Message-ID: <1399834778.1243.1711667174752@nm-docs> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_1242_433656920.1711667174752" ------=_Part_1242_433656920.1711667174752 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
=
R=
eleased on: November 12, 2018
The Alf Plugin version 19.0 SP1 ad= ds new features for making invocations through ports using Alf, viewing the= Alf bodies of read-only elements and resetting a project through the Open = API. It also provides bug fixes.
What you get:
You can access a Port using the usual Alf notation for a Property. Sendi= ng a Signal or calling an Operation on the Port (consistent with the Port's= type) then makes an invocation through the Port and across any Connector a= ttached to the Port. That is, the Alf invocation is mapped into an invocati= on action whose onPort property is set to the target Port.=
The Alf language requires that the type a property that is the target of= a Signal send have a Signal Reception for the Signal being sent. Therefore= , in order to send a Signal through a Port, the type of the Port must= em> have a Signal Reception for the Signal.
Sometimes an Alf body will be attached to an element that is editable, s= uch as when it is in a read-only used project or a part of a Teamwork Cloud= project that is not locked for edit. In this case, the Alf Editor will sti= ll show the Alf code for the element, but on a gray background to indicate = that the code is not editable. If the element becomes editable (for instanc= e, by locking it for edit in Teamwork Cloud), then the Alf Editor will allo= w the code to be edited.
Once the = AlfImporter API is used on a project, it is no longer consistent t= o use the Al= fCompiler API with that project. To be able to use the AlfComp= iler API again, you previously had to save, close and re-open the proj= ect. Now, you can instead simply use the new AlfActionUtil,.resetA= ctiveProject method to return the currently active project to a state = in which the AlfCompiler can be used, or use to AlfActionUtil.= resetProject method to similarly reset a specific project.
AlfImpo= rter importer =3D new AlfImporter(modelDirectory, progressStatus); Path path =3D Paths.get(modelDirectory, modelFileName); if (importer.parse(path)) { AlfActionUtil.executeSession("Import Alf", new Runnable() { public void run() { importer.compile(path); =20 } }); } // It is unsafe to use the AlfCompiler API at this point. AlfActionUtil.resetActiveProject(); // It is safe to use the AlfCompiler API from here on...
The following bugs have been fixed in the Alf Plugin 19.0 SP1:
In addition, the Alf compiler was updated to Alf Reference Implementatio= n v1.1.0e, which fixed a few minor compiler bugs.