Statistiques
| Révision:

fr_b02 / petri / src / main / Network.java @ 2

Historique | Voir | Annoter | Télécharger (4,688 ko)

1
package main;
2

    
3

    
4
import java.util.ArrayList;
5
import java.util.List;
6

    
7
public class Network {
8
        public static int ArcOutering = 2;
9
        public static int ArcCleaner = 1;
10
        public static int ArcZero = 0;
11
        public static int ArcEntering = 3;
12
        
13
        private List<Place> placeList;
14
        private List<Transition> listTransition;        
15
        public Network() {
16
                this.placeList=new ArrayList<Place>();
17
                this.listTransition=new ArrayList<Transition>();
18

    
19
        }
20

    
21

    
22
        public void addTransition() {
23
                Transition transition = new Transition();
24
                listTransition.add(transition);
25
        }
26
        public void addPlace(int value) {
27
                Place place = new Place(value);
28
                placeList.add(place);
29
        }
30

    
31
        public void addArc(Transition transition, Place place, int value, int identifier) {
32

    
33
                if (identifier==ArcZero) {
34
                        transition.getArcList().add(new ArcZero(place, value));
35
                }
36
                else if(identifier==ArcCleaner) {
37
                        transition.getArcList().add(new ArcCleaner(place));
38
                }
39
                else if(identifier==ArcOutering) {
40
                        transition.getArcList().add(new ArcOutering(place,value));                        
41
                }else if(identifier==ArcEntering) {
42
                        transition.getArcList().add( new ArcEntering(place,value));
43
                }
44

    
45
        }
46
        public void deleteArc(Arc a) {
47
                for(Transition transition: listTransition) {
48
                        for(Arc arc:transition.getArcList()) {
49
                                if(arc.equals(a)) {
50
                                        transition.getArcList().remove(arc);
51
                                }
52
                        }
53
                        
54
                }
55

    
56
        }
57
        
58
        public void deletePlace( Place place) {
59
                for(Transition transition: listTransition) {
60
                        for(Arc arc:transition.getArcList()) {
61
                                if(arc.getPlace().equals(place)) {
62
                                        deleteArc( arc);
63
                                        placeList.remove(place);
64
                                }
65
                        }
66
                        
67
                }
68
                
69
        }
70
        
71
        public void deleteTransition(Transition transition) {
72
        
73
                listTransition.remove(transition);
74
        }
75

    
76
        public void fire(Transition transition) {
77
                if (transition.isPullable()==true) {
78
                        transition.doTransition();
79
                }
80
        }
81
        public String toString() {
82
                String res= "[";
83
                for(int i=0;listTransition.size()>i;i++ ) {
84
                        res=res+"transtion "+i+" :"+listTransition.get(i).toString()+", ";
85
                }
86
                res=res+"]";
87
                return res;
88
        }
89
        public static void main(String[] args) {
90
                
91
                Network n0=new Network();
92
                n0.addPlace(5);
93
                n0.addPlace(4);
94
                n0.addTransition();
95
                n0.addArc(n0.listTransition.get(0), n0.placeList.get(0), 2, ArcEntering);
96
                n0.addArc(n0.listTransition.get(0), n0.placeList.get(1), 2, ArcOutering);
97
                System.out.println("");
98
                System.out.println("TEST 1 une transtion, un arcOutering un arcEntering");
99
                System.out.println("");
100
                System.out.println("situtation initial : ");
101
                System.out.println(n0);
102
                
103
                System.out.println("fire 1 : ");
104
                n0.fire(n0.listTransition.get(0));
105
                System.out.println(n0);
106
                
107
                System.out.println("fire 2 : ");
108
                n0.fire(n0.listTransition.get(0));
109
                System.out.println(n0);
110
                
111
                System.out.println("fire 3 : ");
112
                n0.fire(n0.listTransition.get(0));
113
                System.out.println(n0);
114
                
115
                
116
                Network n3=new Network();
117
                n3.addPlace(5);
118
                n3.addPlace(4);
119
                n3.addTransition();
120
                n3.addArc(n3.listTransition.get(0), n3.placeList.get(0), 2, ArcEntering);
121
                n3.addArc(n3.listTransition.get(0), n3.placeList.get(1), 2, ArcOutering);
122
                System.out.println("");
123
                System.out.println("TEST 2 delete place ");
124
                System.out.println("");
125
                System.out.println("BEFORE :");
126
                System.out.println(n3);
127
                System.out.println(n3.placeList);
128
                n3.deletePlace(n3.placeList.get(0));
129
                System.out.println("AFTER :");
130
                System.out.println(n3);
131
                System.out.println(n3.placeList);
132
                
133
                Network n1=new Network();
134
                n1.addPlace(5);
135
                n1.addPlace(4);
136
                n1.addTransition();
137
                n1.addArc(n1.listTransition.get(0), n1.placeList.get(0), 2, ArcEntering);
138
                n1.addArc(n1.listTransition.get(0), n1.placeList.get(1), 2, ArcOutering);
139
                
140
                System.out.println("");
141
                System.out.println("TEST 3 delete arc ");
142
                System.out.println("");
143
                System.out.println("BEFORE :");
144
                System.out.println(n1);
145
                System.out.println("liste des place :"+n1.placeList);
146
                n1.deleteArc(n1.listTransition.get(0).getArcList().get(0));
147
                System.out.println("AFTER :");
148
                System.out.println(n1);
149
                System.out.println("liste des place :"+n1.placeList);
150
                
151
                Network n2=new Network();
152
                n2.addPlace(5);
153
                n2.addPlace(4);
154
                n2.addTransition();
155
                n2.addArc(n2.listTransition.get(0), n2.placeList.get(0), 2, ArcEntering);
156
                n2.addArc(n2.listTransition.get(0), n2.placeList.get(1), 2, ArcOutering);
157
                
158
                System.out.println("");
159
                System.out.println("TEST 4 delete transition ");
160
                System.out.println("");
161
                System.out.println("BEFORE :");
162
                System.out.println(n2);
163
                System.out.println("liste des place :"+n2.placeList);
164
                n2.deleteTransition(n2.listTransition.get(0));
165
                System.out.println("AFTER :");
166
                System.out.println(n2);
167
                System.out.println("liste des place :"+n2.placeList);
168
                
169
                
170

    
171
        }
172

    
173
}