解决的办法是延长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