package CREATOR_CONDICTIONS_RULES; import LOGIC.Instance; import LOGIC.Protocols; import java.util.LinkedList; /** * * @author sarah */ public class CreatorProtocol { private String protocolo = ""; private LinkedList prot; private LinkedList instance; private CreatorNamesOfProcessCSP creatName; private LinkedList pegarProtRIO; private CreatorNamesOfProcessCSP creatNamePcsp; private LinkedList guardanomeProcessoProt_Imp; private LinkedList pegarDualProtRIO; private LinkedList pegarDualProt; public CreatorProtocol(LinkedList i, LinkedList p) { this.prot = p; instance = i; creatName = new CreatorNamesOfProcessCSP(i, p); pegarProtRIO = new LinkedList<>(); creatNamePcsp = new CreatorNamesOfProcessCSP(i, p); } public String creatorProtocol_and_DualProtocol() { creatoProtocol(); CreateDualProtocol(); CreateProtocolIMP_RIO(); CreateDual_ProtocolIMP_RIO(); return protocolo; } private void creatoProtocol() { //protocoll //PROT_IMP_CELL_1_write = PROT_CTRL(write) for (int i = 0; i < prot.size(); i++) { if (prot.get(i).getProtocol().contains("=")) { int st = prot.get(i).getProtocol().indexOf("="); protocolo = protocolo + "PROT_IMP_" + instance.get(i).getName() + "_" + prot.get(i).getCanal().getName(); protocolo = protocolo + " = " + prot.get(i).getProtocol().substring(st + 1, prot.get(i).getProtocol().length()); protocolo = protocolo + "\n"; } else { protocolo = protocolo + "PROT_IMP_" + instance.get(i).getName() + "_" + prot.get(i).getCanal().getName(); protocolo = protocolo + " = " + prot.get(i).getProtocol(); protocolo = protocolo + "\n"; } } protocolo = protocolo + "\n"; //renomeando protocolos //protocolo = protocolo + "--renomeando protocolos \n\n"; //protocolo = protocolo + "PROT_IMP_" + instance.get(i).getName() + "_" + prot.get(i).getCanal().getName(); // protocolo = protocolo + " = " + prot.get(i).getProtocol().substring(st + 1, prot.get(i).getProtocol().length()); // protocolo = protocolo + "\n\n"; } private void CreateDualProtocol() { //dualProtocol for (int i = 0; i < prot.size(); i++) { if (prot.get(i).getDualProtocol().contains("=")) { int st = prot.get(i).getDualProtocol().indexOf("="); protocolo = protocolo + "DUAL_PROT_IMP_" + instance.get(i).getName() + "_" + prot.get(i).getCanal().getName(); protocolo = protocolo + " = " + prot.get(i).getDualProtocol().substring(st + 1, prot.get(i).getDualProtocol().length()); protocolo = protocolo + "\n"; } else { protocolo = protocolo + "DUAL_PROT_IMP_" + instance.get(i).getName() + "_" + prot.get(i).getCanal().getName(); protocolo = protocolo + " = " + prot.get(i).getDualProtocol(); protocolo = protocolo + "\n"; } } protocolo = protocolo + "\n"; } private void CreateProtocolIMP_RIO() { guardanomeProcessoProt_Imp = creatNamePcsp.CreatorProt_Name(); pegarProtRIO = creatNamePcsp.CreatorProt_RIO(); protocolo = protocolo + pegarProtRIO.get(0) + " = PROT_IMP_R(" + guardanomeProcessoProt_Imp.get(0) + ",R_IO(" + instance.get(0).getName() + "," + prot.get(0).getCanal().getName() + "," + prot.get(1).getCanal().getName() + "))"; protocolo = protocolo + "\n"; protocolo = protocolo + pegarProtRIO.get(1) + " = PROT_IMP_R(" + guardanomeProcessoProt_Imp.get(1) + ",R_IO(" + instance.get(1).getName() + "," + prot.get(1).getCanal().getName() + "," + prot.get(0).getCanal().getName() + "))"; protocolo = protocolo + "\n\n"; } private void CreateDual_ProtocolIMP_RIO() { pegarDualProtRIO =creatNamePcsp.CreatorDual_Prot_RIO(); pegarDualProt = creatNamePcsp.CreatorDual_Prot_Name(); protocolo = protocolo + pegarDualProtRIO.get(0) + " = DUAL_PROT_IMP_R(" + pegarDualProt.get(0) + ",R_IO(" + instance.get(0).getName() + "," + prot.get(0).getCanal().getName() + "," + prot.get(1).getCanal().getName() + "))"; protocolo = protocolo + "\n"; protocolo = protocolo + pegarDualProtRIO.get(1) + " = DUAL_PROT_IMP_R(" + pegarDualProt.get(1) + ",R_IO(" + instance.get(1).getName() + "," + prot.get(1).getCanal().getName() + "," + prot.get(0).getCanal().getName() + "))"; } }