Giter Site home page Giter Site logo

emf-compare's Introduction

HOW TO : EMF Compare customization

Project structure

  • org.neclipse.xtext.smalljavadsl - This project contains the grammar for a very simple language that allows us to define Java like classes and attribues inside it.
  • org.neclipse.emfcompare.smalljavadsl - This project contains EMF Compare customization code.
    • We have customized the FeatureFilter to ignore some of the attributes and references of the SmallJava model. What this means is that the compare framework will completely ignore these attributes(EAttribute) and references(EReference) during the matching phase.
    • Secondly, we have customized the DiffBuilder to ignore the differences that don't make much sense to us. This is quiet useful as it enables us to represent a model change as a single change and not multiple changes.
    • The ResourceSetCompare provides the compare api that takes two instances of ResourceSet and returns the differences. It defines the comparison scope, the custom matcher and configures the EMFCompare. We have ignored the Equivalences, Requirements and Conflicts phases as we only need the differences.
  • The ResourceSetCompareTest contains all the unit-tests. It pretty much covers the important/basic test cases. It makes use of the unit-testing support provided by the xtext framework. Writing the unit-tests in this fashion has been fun and I personally find it easy to maintain. The tests are very clean and self-composed.
  • The developer guide is an excellent introduction to how the Compare framework can be customized.

emf-compare's People

Contributors

nbhusare avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.