Решение состоит в том, чтобы расширить 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