Skip to content

Commit 47b4c02

Browse files
authored
Merge pull request #8 from vykio/model-structure
Model structure to real Develop
2 parents af66928 + 2d4dae5 commit 47b4c02

File tree

6 files changed

+516
-1
lines changed

6 files changed

+516
-1
lines changed

src/com/tech/app/App.java

+48-1
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,60 @@
55

66
package com.tech.app;
77

8+
import com.tech.app.models.Arc;
9+
import com.tech.app.models.Place;
10+
import com.tech.app.models.System;
11+
import com.tech.app.models.Transition;
812
import com.tech.app.windows.MainWindow;
913

1014
import java.awt.*;
1115

1216
public class App implements Runnable {
1317
@Override
14-
public void run() {MainWindow mainWindow = new MainWindow(500,500);}
18+
public void run() {
19+
MainWindow mainWindow = new MainWindow(500,500);
20+
21+
/* Instanciation du système */
22+
System system = new System();
23+
24+
/* Définition des places et des transitions */
25+
Place p = new Place("P1", 0, 0, 1);
26+
Place p2 = new Place("P2", 0, 0, 0);
27+
Place p3 = new Place("P3", 0,0, 0);
28+
Transition t = new Transition("t1", 0, 0);
29+
Transition t2 = new Transition("t2", 0, 0);
30+
31+
/* Ajout des places d'entrées et de sorties */
32+
t.addChildren(p);
33+
t.addParent(new Arc(p, 2));
34+
t.addParent(p3);
35+
t2.addChildren(p2);
36+
t2.addChildren(p3);
37+
t2.addParent(p);
38+
39+
/* Ajout des places et des transitions au système */
40+
system.addPlace(p);
41+
system.addPlace(p2);
42+
system.addPlace(p3);
43+
system.addTransition(t);
44+
system.addTransition(t2);
45+
46+
/* Experimentation */
47+
Place p4 = new Place("P4", 0, 0, 1);
48+
system.addPlace(p4);
49+
Transition t4 = new Transition("t4", 0, 0);
50+
t4.addChildren(new Arc(p, 3));
51+
t4.addParent(p4);
52+
system.addTransition(t4);
53+
54+
// Doit retourner une petite erreur car "p4" != "P4"
55+
system.removePlace("p4");
56+
57+
/* Affichage du système */
58+
java.lang.System.out.println(system);
59+
60+
}
61+
1562

1663
public synchronized void start() {
1764
new Thread(this).start();

src/com/tech/app/functions/FList.java

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.tech.app.functions;
2+
3+
import com.tech.app.models.Arc;
4+
import com.tech.app.models.Place;
5+
6+
import java.util.List;
7+
8+
public class FList {
9+
10+
/**
11+
* True si la liste d'arcs contient la place en deuxième argument
12+
* @param arcs : Liste des arcs
13+
* @param place : Place à checker
14+
* @return : True ou False
15+
*/
16+
public static boolean contains(List<Arc> arcs, Place place) {
17+
for (int i = 0; i < arcs.size(); i++) {
18+
if (arcs.get(i).getPlace() == place) {
19+
return true;
20+
}
21+
}
22+
return false;
23+
}
24+
25+
/**
26+
* Retourne le poids de l'arc qui contient la place en deuxième argument
27+
* @param arcs
28+
* @param place
29+
* @return
30+
*/
31+
public static int poids_arc(List<Arc> arcs, Place place) {
32+
for (int i = 0; i < arcs.size(); i++) {
33+
if (arcs.get(i).getPlace() == place) {
34+
return arcs.get(i).getPoids();
35+
}
36+
}
37+
return -1;
38+
}
39+
40+
/**
41+
* Récupérer l'objet Place de nom :name: s'il est contenue dans la liste places
42+
* @param places : Liste des places où l'on doit chercher
43+
* @param name : Nom de la place que l'on cherche
44+
* @return : Objet de type place, et de nom :name:
45+
*/
46+
public static Place getPlaceByName(List<Place> places, String name) {
47+
for (int i = 0; i < places.size(); i++) {
48+
if (places.get(i).getName().equals(name)) {
49+
return places.get(i);
50+
}
51+
}
52+
return null;
53+
}
54+
55+
}

src/com/tech/app/models/Arc.java

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.tech.app.models;
2+
3+
public class Arc {
4+
5+
private Place place;
6+
private int poids;
7+
8+
public Arc(Place place, int poids){
9+
this.place = place;
10+
this.poids = poids;
11+
}
12+
13+
public Arc(Place place) { this(place, 1); }
14+
15+
public Place getPlace() { return this.place; }
16+
public int getPoids() { return this.poids; }
17+
18+
public void setPlace(Place place) { this.place = place; }
19+
public void setPoids(int poids) { this.poids = poids; }
20+
21+
@Override
22+
public String toString() {
23+
return "Arc{" +
24+
"place=" + place +
25+
", poids=" + poids +
26+
'}';
27+
}
28+
}

src/com/tech/app/models/Place.java

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.tech.app.models;
2+
3+
public class Place {
4+
5+
private String name;
6+
private int x, y, marquage;
7+
8+
public Place(String name, int x, int y, int marquage) {
9+
this.name = name;
10+
this.x = x;
11+
this.y = y;
12+
this.marquage = marquage;
13+
}
14+
15+
public Place(String name, int x, int y) { this(name, x, y, 0); }
16+
public Place(String name) { this(name, 0, 0, 0); }
17+
18+
public String getName() { return name; }
19+
public int getX() { return x; }
20+
public int getY() { return y; }
21+
public int getMarquage() { return marquage; }
22+
23+
public void addMarquage(int marquage) { this.marquage += marquage; }
24+
public void removeMarquage(int marquage) { this.marquage = Math.max(this.marquage - marquage, 0); }
25+
public void setMarquage(int marquage) { this.marquage = Math.max(marquage, 0); }
26+
public void resetMarquage() { this.marquage = 0; }
27+
28+
public String toString() {
29+
return "P(\""+ this.name + "\", " + this.x + ", " + this.y + ", m:"+ this.marquage + ")";
30+
}
31+
32+
}

0 commit comments

Comments
 (0)