Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [papyrus-rt-dev] UML-RT Façade Update

Hi, Ernesto,

Yes, the “committers/cdamus/facade" branch was just a preview and is obsolete.  And you will see from my latest posting on this list that I am now looking to integrate this into master.  😀

Yes, it is a drop-in replacement for the POJOs:  the API is identical, except that what were concrete classes before are now the EMF/UML2-generated interfaces for a model.  But all of the type names, methods calls, and everything are exactly as before.

Cheers,

Christian

On Jan 31, 2017, 10:08 -0500, Ernesto Posse <eposse@xxxxxxxxxxxxx>, wrote:
Thanks Christian, and great documentation in the wiki!

A couple of questions: is the "authoritative" implementation of the façade on your inheritance branch and not on the façade branch then? Does this completely replace the previous POJO approach? Is the façade branch no longer in use?

--
Ernesto


On Mon, Jan 30, 2017 at 9:56 PM Christian Damus <give.a.damus@xxxxxxxxx> wrote:
Hi, Team, 

As agreed at the last synch meeting, I have completed a refactoring of the UML-RT façade API as a UML2-generated metamodel directly representing the concepts of the UML-RT profile (capsules and protocols only, so far) in the UML2/EMF framework.  You can see the result in the latest build (#107 or later) of the inheritance feature branch.  See, in particular, commits b5b400ba0e697f373f60c51a730c9845efda5f3e and df8a130a91d28b2db5f0ce676f3afb18f554fe5e.

So, this now provides the usual EMF integrations for the façade API.  Note that there are still limitations as compared to, for example, the UML metamodel, including:
  • all features of the façade metaclasses are derived, being computed on demand from the underlying UML model; the façade objects are wrappers for the UML
  • as such, there is no support for serialization (persistence) of façade instances.  They are persisted as a UML model only
  • however, many of these derived features in the façade do notify, which makes them suitable for triggering updates in the UI and such, but not for undo/redo, because all edits are actually performed on the UML model anyways and the façade is not maintained in any resource (and so not in the resource set and the editing domain that controls it).  The features that support notification are the ones that seem most like the “structural” properties that one would edit and present in the UI.  See the wiki for a complete list
  • direct creation of the façade objects via the static generated EFactory is not supported.  In fact, I now have experimental support for caching of façade instances by soft reference, to let the garbage collector purge them under memory pressure.  This is not enabled by default, but the JUnit launch configurations and all of my own run-time workbench launch configurations enable it for testing until I see how it shakes out in practice
Once again, there is a lot of code here to review.  I encourage feed-back.  For now, I shall continue with state machine inheritance, adding the state machine concepts to this façade to support the inheritance work in the Model Explorer, the Properties View, and the diagram.  On the branch, of course.

Cheers,

Christian


_______________________________________________
papyrus-rt-dev mailing list
papyrus-rt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/papyrus-rt-dev
--
Ernesto Posse
Zeligsoft
_______________________________________________
papyrus-rt-dev mailing list
papyrus-rt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/papyrus-rt-dev

Back to the top