Blame view
BRIC/src/CSP_ANALYSE/AnalyseRuleInterleave.java
4.34 KB
eeb5cac08
![]() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package CSP_ANALYSE; import LOGIC.Contract; import LOGIC.Instance; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.LinkedList; import javax.swing.JOptionPane; /** * * @author sarah */ public class AnalyseRuleInterleave { private ArrayList<FDRResult> rule; private LinkedList<Instance> instance; private String pegarErro = ""; private Contract c; private ReadFileCSP rdf; private ReturnMensageFDR mensagemF; public AnalyseRuleInterleave(LinkedList<Instance> i) { instance = i; rule = new ArrayList<FDRResult>(); c = new Contract(); c.setName("RuleInterleaveOf" + i.get(0).getName() + "_" + i.get(1).getName()); rdf = new ReadFileCSP(c); mensagemF = new ReturnMensageFDR(c); } public ArrayList<FDRResult> resultRule() { rdf.saidaFDR(); // vai ler o arquivo saidaFDR.log verificando as condições de IOProcess File pegarSaida = new File("fdrLog/" + c.getName() + "_saida_" + rdf.getTemp() + ".log"); if (!pegarSaida.exists()) { System.exit(-1); } try { BufferedReader pegarResultado = new BufferedReader(new FileReader(pegarSaida)); String line = ""; while ((line = pegarResultado.readLine()) != null) { if (line == null) { FDRResult retorno = new FDRResult(); retorno.setMensagem("O arquivo CSP está com erro"); retorno.setResultado(false); rule.add(retorno); } else if (line.equals("Checking STOP [T= RUN(inter(events(" + instance.get(0).getName() + "),events(" + instance.get(1).getName() + ")))")) { line = pegarResultado.readLine(); if (line == null) { FDRResult retorno = new FDRResult(); retorno.setMensagem("O arquivo CSP está com erro"); retorno.setResultado(false); rule.add(retorno); } else { FDRResult retorno = new FDRResult(); if (line.equals("true") || line.equals("xtrue")) { retorno.setMensagem("The Alphabets are disjont"); retorno.setResultado(true); rule.add(retorno); } else { retorno.setMensagem("The Alphabets aren't disjont"); retorno.setResultado(false); rule.add(retorno); } } } else if (line.equals("Checking newComponent :[deadlock free[FD]]")) { line = pegarResultado.readLine(); if (line == null) { FDRResult retorno = new FDRResult(); retorno.setMensagem("O arquivo CSP está com erro"); retorno.setResultado(false); rule.add(retorno); } else { FDRResult retorno = new FDRResult(); if (line.equals("true") || line.equals("xtrue")) { retorno.setMensagem("The composition was successful (NO deadlock)"); retorno.setResultado(true); rule.add(retorno); } else { retorno.setMensagem("The composition was not successful (is deadlock)"); retorno.setResultado(false); rule.add(retorno); } } } } } catch (Exception e) { e.printStackTrace(); JOptionPane.showMessageDialog(null, "error occurred in verifying the composition"); } //pegarErroSaida(); if(rule.size() == 0){ FDRResult retorno = new FDRResult(); retorno.setMensagem("O arquivo CSP está com erro"); retorno.setResultado(false); rule.add(retorno); } rule.add(mensagemF.returnMensagefdr()); return rule; } } |