2013-12-13 2 views
3

내 프로그램의 .als에서 임의의 .xml 인스턴스를 생성해야합니다. 나는 백그라운드 (보이지 않는 JFrame)에서 합금을 실행하고 doOpen, doExecuteLatest 및 doShowLatest 함수를 호출하여이를 수행 할 수있었습니다. 하지만 내 코드를 실행할 때마다 시작하기 위해 합금을 기다려야하는 것이 고통입니다. 나는이 절차를 수행하는 합금 코드 섹션을 단순히 사용하면 더 효율적이라고 생각한다 (나는 kodkod가 될 것이라고 상상한다). 그 방법을 아는 사람이 있습니까? 합금 코드가 꽤 혼란 스럽다는 것을 발견했습니다 ...합금 - .als에서 .xml 인스턴스 생성

답변

6

합금 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

솔루션을 반복하는 방법은 무엇입니까? (). 감사. –