2013-12-13 23 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

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