Проецирование экземпляра из A4Solution
Я пытаюсь создать новый интерфейс для визуализации моих экземпляров Alloy. Я получил решение A4S и успешно извлек атомы, отношения, проверил подписи атомов, НО я не могу понять, как спроецировать экземпляр на какой-нибудь сигнал.
Я заметил, что я могу попытаться использовать edu.mit.csail.sdg.alloy4viz.AlloyInstance, у меня есть варианты проецирования туда, но это подразумевало бы начало заново под другим углом.
Будет ли это путь? Я бы предпочел извлечь это из объекта A4Solution.
Спасибо
1 ответ
Вы можете посмотреть на edu.mit.csail.sdg.alloy4viz.StaticProjector
класс и его project
методы --- вот как Alloy Visualizer реализует проекции. Если ваша визуализация использует edu.mit.csail.sdg.alloy4viz.AlloyModel
класс, вы должны иметь возможность повторно использовать существующий код в StaticProjector
; однако из вашего поста кажется, что вы бы предпочли не использовать ни один из классов сплава 4viz, и в этом случае не должно быть слишком сложно понять, как StaticProjector
работает и повторно применить те же идеи для вашего проекта. Или вы могли бы преобразовать A4Solution
возражать против AlloyInstance
[1] и создайте свой визуализатор на основе классов loy4viz, что, на мой взгляд, было бы хорошим способом проработать ваш проект.
[1] что-то вроде:
a4sol.writeXML("instance.xml")
AlloyInstance inst = StaticInstanceReader.parseInstance(new File("instance.xml"));