EMF-JSON: включить свойства подкласса EObject - PullRequest
0 голосов
/ 29 октября 2018

Я использую EMF-JSON для сериализации экземпляра модели EMF. Проблема в том, что подкласс EObject обрабатывается как таковой, а не как подкласс. Таким образом, свойства в подклассе теряются во время сериализации, так как выбран EObjectSerializer. Как я могу убедиться, что свойства подкласса включены без изменения самого класса (ссылаясь на аннотации включения)? В следующем вы найдете сгенерированные интерфейсы. В этом случае свойство ref класса ArithVar не сериализуется.

public interface ArithExpr extends EObject {}

public interface ArithVar extends ArithExpr {
    VarType getRef();
    void setRef(VarType value);
}

public interface VarType extends EObject {}

Есть идеи?

1 Ответ

0 голосов
/ 29 октября 2018

Из документации :

Ссылки по умолчанию сериализуются как объекты JSON, содержащие два поля. Первое поле - это тип ссылочного объекта, а второе поле - это URI ссылочного объекта. Поле типа называется eClass, а поле URI - $ ref.

.

Так что я думаю, должно работать по умолчанию. Вы пробовали отладку через EObjectSerializer? Я предполагаю, что он, вероятно, использует отражающий API EMF для перебора всех функций EObject и их сериализации.

...