Statistiques
| Révision:

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

Historique | Voir | Annoter | Télécharger (5,108 ko)

1 2 a19coudr
package main;
2
3
4
import java.util.ArrayList;
5
import java.util.List;
6
7 4 a19coudr
import arcElement.Arc;
8
import arcElement.ArcCleaner;
9
import arcElement.ArcEntering;
10
import arcElement.ArcOutering;
11
import arcElement.ArcZero;
12 3 a19coudr
import element.Place;
13 4 a19coudr
import element.Place.UndefinedToken;
14 3 a19coudr
import element.Transition;
15
16 2 a19coudr
public class Network {
17
        public static int ArcOutering = 2;
18
        public static int ArcCleaner = 1;
19
        public static int ArcZero = 0;
20
        public static int ArcEntering = 3;
21
22
        private List<Place> placeList;
23
        private List<Transition> listTransition;
24
        public Network() {
25
                this.placeList=new ArrayList<Place>();
26
                this.listTransition=new ArrayList<Transition>();
27
28
        }
29
30
31
        public void addTransition() {
32
                Transition transition = new Transition();
33
                listTransition.add(transition);
34
        }
35 4 a19coudr
        public void addPlace(int value) throws UndefinedToken {
36 2 a19coudr
                Place place = new Place(value);
37
                placeList.add(place);
38
        }
39
40
        public void addArc(Transition transition, Place place, int value, int identifier) {
41
42
                if (identifier==ArcZero) {
43
                        transition.getArcList().add(new ArcZero(place, value));
44
                }
45
                else if(identifier==ArcCleaner) {
46
                        transition.getArcList().add(new ArcCleaner(place));
47
                }
48
                else if(identifier==ArcOutering) {
49
                        transition.getArcList().add(new ArcOutering(place,value));
50
                }else if(identifier==ArcEntering) {
51
                        transition.getArcList().add( new ArcEntering(place,value));
52
                }
53
54
        }
55
        public void deleteArc(Arc a) {
56
                for(Transition transition: listTransition) {
57
                        for(Arc arc:transition.getArcList()) {
58
                                if(arc.equals(a)) {
59
                                        transition.getArcList().remove(arc);
60
                                }
61
                        }
62
63
                }
64
65
        }
66
67
        public void deletePlace( Place place) {
68
                for(Transition transition: listTransition) {
69
                        for(Arc arc:transition.getArcList()) {
70
                                if(arc.getPlace().equals(place)) {
71
                                        deleteArc( arc);
72
                                        placeList.remove(place);
73
                                }
74
                        }
75
76
                }
77
78
        }
79
80
        public void deleteTransition(Transition transition) {
81
82
                listTransition.remove(transition);
83
        }
84
85
        public void fire(Transition transition) {
86
                if (transition.isPullable()==true) {
87
                        transition.doTransition();
88
                }
89
        }
90
        public String toString() {
91
                String res= "[";
92
                for(int i=0;listTransition.size()>i;i++ ) {
93
                        res=res+"transtion "+i+" :"+listTransition.get(i).toString()+", ";
94
                }
95
                res=res+"]";
96
                return res;
97
        }
98 4 a19coudr
        public static void main(String[] args) throws UndefinedToken {
99 2 a19coudr
100
                Network n0=new Network();
101
                n0.addPlace(5);
102
                n0.addPlace(4);
103
                n0.addTransition();
104
                n0.addArc(n0.listTransition.get(0), n0.placeList.get(0), 2, ArcEntering);
105
                n0.addArc(n0.listTransition.get(0), n0.placeList.get(1), 2, ArcOutering);
106
                System.out.println("");
107
                System.out.println("TEST 1 une transtion, un arcOutering un arcEntering");
108
                System.out.println("");
109
                System.out.println("situtation initial : ");
110
                System.out.println(n0);
111
112
                System.out.println("fire 1 : ");
113
                n0.fire(n0.listTransition.get(0));
114
                System.out.println(n0);
115
116
                System.out.println("fire 2 : ");
117
                n0.fire(n0.listTransition.get(0));
118
                System.out.println(n0);
119
120
                System.out.println("fire 3 : ");
121
                n0.fire(n0.listTransition.get(0));
122
                System.out.println(n0);
123
124
125
                Network n3=new Network();
126
                n3.addPlace(5);
127
                n3.addPlace(4);
128
                n3.addTransition();
129
                n3.addArc(n3.listTransition.get(0), n3.placeList.get(0), 2, ArcEntering);
130
                n3.addArc(n3.listTransition.get(0), n3.placeList.get(1), 2, ArcOutering);
131
                System.out.println("");
132
                System.out.println("TEST 2 delete place ");
133
                System.out.println("");
134
                System.out.println("BEFORE :");
135
                System.out.println(n3);
136
                System.out.println(n3.placeList);
137
                n3.deletePlace(n3.placeList.get(0));
138
                System.out.println("AFTER :");
139
                System.out.println(n3);
140
                System.out.println(n3.placeList);
141
142
                Network n1=new Network();
143
                n1.addPlace(5);
144
                n1.addPlace(4);
145
                n1.addTransition();
146
                n1.addArc(n1.listTransition.get(0), n1.placeList.get(0), 2, ArcEntering);
147
                n1.addArc(n1.listTransition.get(0), n1.placeList.get(1), 2, ArcOutering);
148
149
                System.out.println("");
150
                System.out.println("TEST 3 delete arc ");
151
                System.out.println("");
152
                System.out.println("BEFORE :");
153
                System.out.println(n1);
154
                System.out.println("liste des place :"+n1.placeList);
155
                n1.deleteArc(n1.listTransition.get(0).getArcList().get(0));
156
                System.out.println("AFTER :");
157
                System.out.println(n1);
158
                System.out.println("liste des place :"+n1.placeList);
159
160
                Network n2=new Network();
161
                n2.addPlace(5);
162
                n2.addPlace(4);
163
                n2.addTransition();
164
                n2.addArc(n2.listTransition.get(0), n2.placeList.get(0), 2, ArcEntering);
165
                n2.addArc(n2.listTransition.get(0), n2.placeList.get(1), 2, ArcOutering);
166
167
                System.out.println("");
168
                System.out.println("TEST 4 delete transition ");
169
                System.out.println("");
170
                System.out.println("BEFORE :");
171
                System.out.println(n2);
172
                System.out.println("liste des place :"+n2.placeList);
173
                n2.deleteTransition(n2.listTransition.get(0));
174
                System.out.println("AFTER :");
175
                System.out.println(n2);
176
                System.out.println("liste des place :"+n2.placeList);
177
178
179
180
        }
181
182 4 a19coudr
183
        public List<Place> getPlaceList() {
184
                return placeList;
185
        }
186
187
188
        public List<Transition> getListTransition() {
189
                return listTransition;
190
        }
191
192 2 a19coudr
}