Skip to content

atlanmod/emfviews

Repository files navigation

Logo EMF Views

Build Status License

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.

Installation

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.

Development setup

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).

Building the manual

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.

Building the update site

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

What can you find in this repository?

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 the SELECT 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.

Who is behind this project?

This is an Atlanmod project, the tool platform of the NaoMod research group.

The following people have made significant contributions to the project:

Copyright information

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