Community
Participate
Working Groups
If a developer wishes to override a delegated method in an extending model element, we might see code structure like the following: @GenerateImpl public interface ICreateProjectOp extends IExecutableModelElement { ... // *** Method : execute *** @DelegateImplementation( CreateProjectOpMethods.class ) Status execute( ProgressMonitor monitor ); } @GenerateImpl public interface ICreateWebProjectOp extends ICreateProjectOp { ... // *** Method : execute *** @DelegateImplementation( CreateWebProjectOpMethods.class ) Status execute( ProgressMonitor monitor ); } Due to the bug in the impl class generator, the generated CreateWebProjectOp class will have the following two methods: public Status execute( final ProgressMonitor monitor ) { synchronized( root() ) { return CreateProjectOpMethods.execute( this, monitor ); } } public Status execute( final ProgressMonitor monitor ) { synchronized( root() ) { return CreateWebProjectOpMethods.execute( this, monitor ); } } This doesn't compile. The expected behavior would be to generate just the second method.
Fixed. Test case Misc0005 covers this now.
Verify via unit test.