View Javadoc

1   package net.kwfgrid.gworkflowdl.analysis;
2   
3   
4   
5   /***
6    * Created by IntelliJ IDEA.
7    * User: hans
8    * Date: 11.10.2005
9    * Time: 13:13:47
10   * To change this template use File | Settings | File Templates.
11   */
12  public class AnalysisTransition {
13      public int ID;
14      public int N;
15      public final Marking in;
16      public final Marking out;
17  
18      public AnalysisTransition(int id, int n) {
19          N = n;
20          ID = id;
21          in = new Marking(N);
22          out = new Marking(N);
23      }
24  
25      public AnalysisTransition(int id, Marking inm, Marking outm) {
26          ID = id;
27          N = inm.N;
28          in = inm;
29          out = outm;
30      }
31  
32      public boolean isEnabled(Marking m, Marking capacity) {
33          return (fire(m, capacity) != null);
34      }
35  
36      public Marking fire(Marking m, Marking capacity) {
37          if (!Marking.lessOrEqual(in, m)) {
38              return null;
39          }
40          Marking mark = new Marking(N);
41          for (int i = 0; i < N; i++) {
42              if (m.get(i) != KarpMillerTree.INFINITY ) {
43                  mark.set(i, m.get(i) - in.get(i) + out.get(i));
44              } else {
45                  mark.set(i, KarpMillerTree.INFINITY);
46              };
47          }
48          if (!Marking.lessOrEqual(mark, capacity)) {
49              return null;
50          }
51          return mark;
52      }
53  }