Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » Compare » Naming Concept Left/Right
Naming Concept Left/Right [message #902996] Tue, 21 August 2012 14:49 Go to next message
Benjamin Klatt is currently offline Benjamin KlattFriend
Messages: 36
Registered: September 2010
Hi all,

I am trying to find a clear definition when to use the term / reference "left" respectively "right" is used for attributes, references etc.

When I am triggering the MatchEngine in my code MatchEngine.doMatch(leftRoot, rightRoot), I expected the left model to be the leading one and to find out later on, how the right model differs from the left one.

On the other hand, when working with a resulting DiffGroup element, it only provides the rightParent.

So is this just a wrong expectation of mine, that the left model is the leading one, the right one is compared to?
And is there any point in the documentation or in the Model/JavaDoc specifying left and right in the context of EMFCompare?

Btw.: The JavaDoc of the DiffGroup.getRightParent() contains "If the meaning of the 'Right Parent' reference isn't clear, there really should be more of a description here... " Wink

Thanks a lot
Re: Naming Concept Left/Right [message #903329 is a reply to message #902996] Thu, 23 August 2012 07:59 Go to previous message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1837
Registered: July 2009
Senior Member

As I mentionned in an answer to your other question, we are currently focusing on the 2.0 version of EMF Compare. One of the main reasons for that move is to simplify the core of our tool... and make it more easily understandable by clients.

You have to remember that EMF Compare is a comparison tool integrated with the Eclipse team API. When you compare two files in Eclipse, you will notice that the "right" file is in fact the "original" one, and the "left" is the new. This same direction has been used in EMF Compare 1 and is kept with EMF Compare 2. In other words :
- when you compare two files, "left" is the new one and "right" is the reference
- when you compare three files, "left" is the new one, "right" is the reference, and "ancestor" is the common ancestor of the two, allowing us to determine conflicts

This second option is what is used when you compare files in a VCS : right-click a file that's versionned with CVS, SVN or Git, then select "compare with > latest from HEAD". What's really done under the hood is that we compare the "local" version of the file with its "remote" version which is the latest version of that file on the VCS... but with all information that comes from the common ancestor of "local" and "remote" if "remote" changed since that origin. Here, "local" is "left" and "remote" is "right".

As for the Javadoc of DiffGroup.getRightParent ... That's something automatically generated by EMF (it does not generate the proper documentation on interfaces). You should find a more useful one in DiffGroupImpl.getRightParent IIRC.

Note, once again, that the 2.0 version should be a little clearer on these.

Laurent Goubet
Previous Topic:No differences for different models !
Next Topic:EMF plugin build setup (Solved)
Goto Forum:

Current Time: Tue Sep 26 07:38:40 GMT 2017

Powered by FUDForum. Page generated in 0.07834 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software