2013-12-13 66 views
3

我需要從我的程序中的.als生成隨機.xml實例。我設法通過在後臺運行合金(隱形JFrame)並調用doOpen,doExecuteLatest和doShowLatest函數來實現這一點。但是每次運行我的代碼時都必須等待合金開始,這是一個痛苦。我認爲如果我簡單地使用這個程序的合金代碼部分(我想那將是kodkod)會更有效率。 有誰知道該怎麼做?我發現合金的代碼很混亂...Alloy - 從.als生成.xml實例

回答

6

您可以使用Alloy API。 生成一個實例,寫它作爲一個XML文件可以輕鬆完成以下這些步驟:

  1. 閱讀從源文件中的合金模型。

    model = CompUtil.parseEverything_fromFile(null,null, 「yourmodel.als」);

  2. 獲取要執行的命令。例如:

    命令cmd = model.getAllCommands()。get(0);

  3. 在使用步驟中獲得的命令執行模型2

    A4Solution溶液= TranslateAlloyToKodkod.execute_command(NULL, model.getAllReachableSigs(),CMD,新A4Options());

  4. 寫步驟中生成的溶液3

solution.writeXML( 「路徑/到/ your.xml」);

例子可以在合金jar文件

+0

你沒有多大的幫助,這是觀念的edu.mit.csail.sdg.alloy4whole包中找到!非常感謝! – mcopo

+0

很高興幫助:D –

+1

如何迭代解決方案? (在中提到)。謝謝。 –