On 29/11/12 09:11, jannik laval wrote:
Hi Andrea,
I retrieved your mail and tried to find a solution. I clearly not found anyone.
In fact, in Orion, the idea is to have a link between each version at entity level. It means that a class that has been renamed know its previous version with its previous name. In 2 different mse files, there is no link between these entities. We have to postulate that an entity from the second version is linked to an entity of the first version. For that, we need to use heuristics... which is not deterministic.
So, I found 2 possible ways:
- we match the name of the entities. If they match, there is a link.
But, all rename of entities would provide inconsistencies in the understanding of the model.
- we don't match anything and only remove changed entities to add the
updated one, without link between them.
I am not sure about an easy way to develop this feature. But someone has probably an idea...
Cheers, Jannik
Hi,
First there is no absolute solution, unless you watch all user actions to see that this method was renamed that name. So the idea is to be as close as possible to the perfect solution.
I developped something related in VerveineJ Because it allows incremental parsing, it needs to check every "new" entity to see if it does not already exist (created in a previous parse of the system).
The heuristics used are based on containers. Basically, the algorithm is: If two entites have the same name and their respective owner are "equal" hten they are "equal". The algorithm goes recursively up the owner relationship until there is no owner (for example, Java package "java").
We can discuss this more in depth if you want, or you can have a look at the code (methods matchAndMapXXX in JavaDictionnary.java)
nicolas