解決的辦法是延長DefaultDeclarativeQualifiedNameProvider
:
import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider;
import org.eclipse.xtext.naming.QualifiedName;
import model.Revision;
public class ModelQualifiedNameProvider extends DefaultDeclarativeQualifiedNameProvider {
public final static String REVISION_TABLE_EXTENSION = "_REV";
public final static String REVISION_TYPE_EXTENSION = "Rev";
public QualifiedName qualifiedName(Revision obj) {
QualifiedName qn = getFullyQualifiedName(obj.eContainer());
String typeName = qn.getLastSegment() + REVISION_TABLE_EXTENSION;
QualifiedName result = qn.skipLast(1);
result = result.append(typeName);
return result;
}
}
確保你的方法簽名吧! Xtext反射地調用QualifiedName qualifiedName(MyType ele)
,如果您從1.0升級到2.0,請不要忘記更新簽名:將返回類型從String
更改爲QualifiedName