| Summary: | The generated implementation file for an abstract class "foo" says "fooImpl implements foo" | ||
|---|---|---|---|
| Product: | [Modeling] EMF | Reporter: | stefano casadei <scasadei> |
| Component: | Core | Assignee: | Ed Merks <Ed.Merks> |
| Status: | RESOLVED WONTFIX | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | scasadei |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows 7 | ||
| Whiteboard: | |||
EMF won't generate classes like this. Graph needs to be an interface. ...odd that EMF behaves unpredictably instead of saying that abstract class are prohibited; and why is there an abstract property for the kind="class"? (EMF book, pag. 146) For an EClass X, EMF generates an interface X and implementation class XImpl. If you make the EClass abstract, XImpl will be abstract. If you set EClass.interface to true, then it must be abstract as well and no XImpl is generated. It is possible to suppress the separation of interfaces and implementation classes so they're merged into one. Maybe that's what you want? That's the case where kind='class' is useful. |
Build Identifier: Build id: M20100909-0800 My file Graph.java in the package x.graph has the following definition: /** * @model kind="class" abstract="true" */ public abstract class Graph implements EObject { ... } The corresponding code generated in the file GraphImpl.java of package x.graph.impl has the following erroneous code: public abstract class GraphImpl extends EObjectImpl implements Graph { ... } Moreover, without the explicit properties: kind="class" abstract="true" The EMF generator model interprets Graph as an enum!! Reproducible: Always