Alloy — создание экземпляра .xml из .als

Мне нужно создать случайные экземпляры .xml из .als в моей программе. Мне удалось это сделать, запустив сплав в фоновом режиме (невидимый JFrame) и вызвав функции doOpen, doExecuteLatest и doShowLatest. Но необходимость ждать запуска сплава каждый раз, когда я запускаю свой код, — это боль. Я думаю, что было бы более эффективно, если бы я просто использовал раздел кода сплава, который выполняет эту процедуру (я думаю, это был бы кодкод). Кто-нибудь знает как это сделать? Я нашел код сплава довольно запутанным...


person mcopo    schedule 13.12.2013    source источник


Ответы (1)


Вы можете использовать Alloy API. Создание экземпляра и запись его в виде файла XML можно легко выполнить, выполнив следующие действия:

  1. #P2# <блочная цитата> #P3#
  2. #P4# <блочная цитата> #P5#
  3. #P6# <блочная цитата> #P7#
  4. Запишите решение, полученное на шаге 3.

решение.writeXML("путь/к/вашему.xml");

Примеры можно найти в пакете edu.mit.csail.sdg.alloy4whole jar-файла Alloy.

person Loïc Gammaitoni    schedule 13.12.2013
comment
Вы не представляете, как это было полезно! Большое спасибо! - person mcopo; 13.12.2013
comment
Как перебирать решения? (задано в ‹stackoverflow.com/questions/27227303/). Спасибо. - person Martin Monperrus; 01.12.2014