Task #82574 has been updated.
Subproject: Core (generator)
Summary: Refactoring at model level (concept and prototype)
Authority : mattes3
Assigned to: tjuerge, mattes3
Description: First of all, AndroMDA must not forget about the artifacts it has generated in the previous run. So there is a need for a persistent dictionary of generated items where an item is identified uniquely so that it can be found even if the name of the originating model element has changed.
Next, there must be some code in the AndroMDA core that checks each model element to be processed, whether its name has changed or not. If it has, this code should inform the cartridges which are responsible for the regeneration of the artifacts for that model element.
Each cartridge should decide: What are the consequences of the name change? The cartridge is the right place to do this because only the cartridge knows about the internal structure of the artifacts it generates (e.g. the ejb cartridge knows about Person, PersonBean, PersonHome, etc.) and (more than that) knows about the interface to the internal structure of the user-written code (e.g. PersonImpl).
After the decision, the cartridge should notify the core about the artifacts to be renamed. This is the key thing: The AndroMDA core runs in the context of an Eclipse plug-in which should request the Eclipse JDT to rename the artifacts in question (Java packages, classes, attributes, methods, etc.). Eclipse should then perform the necessary refactorings.
For more info, visit: