Если вам нужен var-arg Java-метод в классе вашей модели, и вам не требуется правильная операция EMF , то это можно решить:
Заставьте ваш класс модели реализовать интерфейс Java, где объявлен метод vararg.
Java-файл:
public interface InterfaceWithVarargMethod {
public void varArgMethod(String... arg);
}
Файл Xcore:
@GenModel(modelDirectory="/EMF_Trying/src-gen")
package emf_trying
interface InterfaceWithVarargMethod wraps InterfaceWithVarargMethod {}
class ModelObject extends InterfaceWithVarargMethod {
}
Будет сгенерирована реализация ModelObjectImpl
без метода var-arg. Вы должны отредактировать сгенерированный код и добавить метод var-arg для кода для компиляции:
public class ModelObjectImpl extends MinimalEObjectImpl.Container implements ModelObject {
/**
* @generated NOT
*/
@Override
public void m(String... arg) {
// Implementation of var-arg method
}
...
}
Возможно, можно найти вариант этого решения, в котором вам не нужно редактировать сгенерированный код. Например, добавив реализацию метода по умолчанию в интерфейсе, затем переопределив метод в рукописном подклассе для класса EClass.