Blame view

BRIC/src/CREATOR_CONDICTIONS_RULES/CreatorChannelFunction.java 3.57 KB
eeb5cac08   Madiel de Souza Conserva Filho   first
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
  /*
   * To change this template, choose Tools | Templates
   * and open the template in the editor.
   */
  package CREATOR_CONDICTIONS_RULES;
  
  import LOGIC.Instance;
  import LOGIC.Protocols;
  import java.util.LinkedList;
  
  /**
   *
   * @author sarah
   */
  //falta receber uma string
  public class CreatorChannelFunction {
      
      private LinkedList<Instance> instance;
      private String creatorChannel = "";
      private LinkedList<String> prot_imp_getChannel; //string com definição de pro_imp e seu canal
      private LinkedList<Protocols> prot;
      private LinkedList<String> nomecanal;
      private String eventoprotocol1 = "";
      private String eventoprotocol2 = "";
      
      public CreatorChannelFunction(LinkedList<Instance> i, LinkedList<Protocols> p){
          this.instance = i;
          this.prot = p;
          //nomeando protocolos para função GET_CHANNEL
          nomecanal = new LinkedList<>();
          
          nomecanal.add(p.get(0).getCanal().getName().replace(".","_"));
          nomecanal.add(p.get(1).getCanal().getName().replace(".","_"));
          
          prot_imp_getChannel = new LinkedList<>();
          prot_imp_getChannel.add("PROT_IMP_"+ instance.get(0).getName() + 
                  "_"+nomecanal.get(0));
          prot_imp_getChannel.add("PROT_IMP_"+ instance.get(1).getName() + 
                  "_"+nomecanal.get(1));
          
         //pegando o nome do evento que passei por paramentro no protocolo 
         int pr1, pr2, pr3, pr4;  
         
         pr1 = p.get(0).getProtocol().indexOf("(");  
         pr2 = p.get(0).getProtocol().lastIndexOf(")");  
         eventoprotocol1 = p.get(0).getProtocol().substring(pr1 + 1, pr2); 
         
         pr3 = p.get(1).getProtocol().indexOf("(");  
         pr4 = p.get(1).getProtocol().lastIndexOf(")");  
         eventoprotocol2 = p.get(1).getProtocol().substring(pr3 + 1, pr4); 
      }
      
      public String creatorChannelFunction() {
          // CHANNELS, INPUTS AND OUTPUTS
          int cont = 0;
          //channels
          creatorChannel = creatorChannel + "
  GET_CHANNELS(P) =";
          creatorChannel = creatorChannel + "
   \t let f =";
          creatorChannel = creatorChannel + "
   \t < 
  ";
          for (Instance instance1 : instance) {
  
              creatorChannel = creatorChannel + "\t(" + instance1.getName() + ", { ";
  
              for (int j = 0; j < instance1.getChannel().size(); j++) {
  
                  if (j == instance1.getChannel().size() - 1) {
                      creatorChannel = creatorChannel + instance1.getChannel().get(j).getName();
                  } else {
                      creatorChannel = creatorChannel + instance1.getChannel().get(j).getName() + ",";
                  }
              }
              cont++;
              //if (cont == instance.size() - 1) {
                  creatorChannel = creatorChannel + " }),";
                  creatorChannel = creatorChannel + "
  
  ";
              //} else {
              //    creatorChannel = creatorChannel + " })";
              //    creatorChannel = creatorChannel + "
  ";
              //}
              
          }
          creatorChannel = creatorChannel + "\t";
          //definição dos canais dos protocolos
          //EX: PROT_IMP_<contract>_<channel> = {<channel>}
          creatorChannel = creatorChannel + "(" + prot_imp_getChannel.get(0) +
                  ",{"+ eventoprotocol1 +"}),";
          creatorChannel = creatorChannel + "
  
  \t";
          creatorChannel = creatorChannel + "(" + prot_imp_getChannel.get(1) +
                  ",{"+ eventoprotocol2 +"})";
  
          creatorChannel = creatorChannel + " \t > 
  ";
          creatorChannel = creatorChannel + "
   \t within apply(f,P )";
          
          return creatorChannel;
  
      }
      
      
  }