Statistiques
| Révision:

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

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

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