EMF Views is an Eclipse plugin that brings the concept of database views to the modeling world. You can create views that focus on only part of a model, or views that combine several models from different metamodels. Views can be navigated and queried as regular models are, and they can used as inputs to model transformations.
The simplest option is to add our update site to Eclipse, and to install the EMF Views feature from there. You need to install Epsilon first if you want to use the ECL builder. To get started after the installation, see our user manual.
Alternatively, you can clone this repository and build the update site locally with Maven. First install sexp2emf, then:
$ git clone https://github.com/atlanmod/emfviews.git
$ cd emfviews
$ mvn install
You can then install the plugins by pointing to the generated update site in your local m2 repository.
If you want to contribute to EMF Views, you can either use the Maven setup as above, or you can import the projects in Eclipse.
With the Maven setup, you should be able to build and run the tests locally. This is the same setup that is used by our Travis integration.
For playing with the plugins inside an actual Eclipse, you should first import the projects of this repository inside Eclipse. You'll need the following dependencies installed for all the plugins to build:
Before building you'll need to generate the Xtext artifacts (right-click the Mel.xtext and Vpdl.xtext grammars in the Eclipse explorer ▶ Run As ▶ Generate Xtext Artifacts).
Then you can test them by launching a guest Eclipse with all the plugins from the workspace (right-click on the EMF Views plugin in the package explorer ▶ Run As ▶ Eclipse Application).
The EMF Views manual is available online, and in the Eclipse Help if you have the EMF Views plugin installed.
The manual is written in Org. To build the manual locally, you need
Emacs, Cask and make. Then, in the doc
folder:
$ cask install
$ make
The first line installs the dependencies, and the second builds both the HTML
standalone and the Eclipse help plugin versions. The doc/html
contains the
standalone HTML manual, which you can browse locally.
You can build the Eclipse update site locally using Maven. For that, you need
to Build the manual first. Then, use the update-site
profile:
$ mvn -P update-site package
In the plugins
folder:
org.atlanmod.emfviews
: This is the main component of the tool. It includes the core logic behind viewpoints and views.org.atlanmod.emfviews.virtuallinks
: An Ecore-based model of links used to construct viewpoints and views.org.atlanmod.emfviews.virtuallinks.delegator
: This package delegates the creation of virtual links to concrete implementations.org.atlanmod.emfviews.virtuallinksepsilondelegate
: This project generate virtual links from the Epsilon Comparison Language (ECL).
We have also defined two DSLs, VPDL and MEL, which have accompanying Eclipse plugins for edition:
org.atlanmod.emfviews.vpdl
: ViewPoint Description Language; useful for creating a viewpoint by filtering multiple metamodels, with a syntax inspired by theSELECT
query in SQL.org.atlanmod.emfviews.mel
: Metamodel Extension Language; can extend metamodel with new classes, attributes, relations.
The examples
folder contains ideas of how to use EMF Views and the DSLs. The
examples ending with -tutorial
are documented in the manual.
emfviews-tutorial
: Create your first Viewpoint and View.vpdl-tutorial
: Define a viewpoint with VPDL.view-to-html-tutorial
: Use a view as input to an EGL template.traceability-demo
: A view encompassing four models from the design time to the runtime of a Java project. Navigating between the four models is made easier with an interactive HTML report generated from the view.
This is an Atlanmod project, the tool platform of the NaoMod research group.
The following people have made significant contributions to the project:
- fmdkdd (primary contact)
- Hugo Bruneliere
- Jokin Garcia Perez (former contributor)
- Juan David Villa Calle (former contributor)
This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/
This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License, version 3 which is available at https://www.gnu.org/licenses/gpl-3.0.txt