Skip to content

5. Super Relation Adaption

Timur Sağlam edited this page Sep 3, 2017 · 1 revision

Adapting the Super Relations of the Origin Code

To complete the Ecorification pattern, the original classes need to inherit the Ecore functionality from their correlating wrapper classes. Already existing inheritance relations will be overridden. The original inheritance relations are implicitly retained through the Ecorification pattern (see 0. Concept and 2. Wrapper Generation).

Additionally, every original interface needs an additional realization relation to make them implement their correlating Ecore interfaces.

The class InheritanceManipulator edits the original classes to implement the changed super relations. It uses the JDT API with the Java AST and a custom ASTVisitor called InheritanceManipulationVisitor to edit the classes one by one. The process is started with a call to the method manipulate() which takes an IProject as a parameter. The IProject is the project that contains the packages.