我正在尝试创建一个新UI来可视化我的Alloy实例。我有一个A4Solution并且已成功提取原子,关系,检查原子签名但是我似乎无法理解如何在某个sig上投影实例。
我注意到我可以尝试使用edu.mit.csail.sdg.alloy4viz.AlloyInstance,我可以选择在那里投影,但这意味着从不同的角度重新开始。< / p>
这会是要走的路吗?我更愿意从A4Solution对象中提取它。
由于
答案 0 :(得分:1)
您可能希望查看edu.mit.csail.sdg.alloy4viz.StaticProjector
类及其project
方法---这是Alloy Visualizer实现投影的方式。如果您的可视化使用edu.mit.csail.sdg.alloy4viz.AlloyModel
类,则应该能够重用StaticProjector
中的现有代码;但是,从您的帖子看来,您似乎不希望使用任何alloy4viz类,在这种情况下,理解StaticProjector
如何工作并将相同的想法重新应用于您的项目应该不会太难。或者你可以将A4Solution
对象转换为AlloyInstance
[1]并围绕alloy4viz类构建你的可视化工具,在我看来,这是一个很好的方式来进行你的项目。
[1]类似于:
a4sol.writeXML("instance.xml")
AlloyInstance inst = StaticInstanceReader.parseInstance(new File("instance.xml"));