1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
/**
* Class générée automatiquement depuis la base SQL ou autre
* Peut être un thread éventuellement
*
*
*/
import java.util.*;
public class Simulator{
private HashMap tests;
private Config conf; // tel que ATP, QT, mode Single ou random ....
private Communication comm;
private WorkingMode wm;
/**
* Constructeur,
* on récupère la config
* on initialise les tests
*
*/
public Simulator(Config conf, Communication comm){
this.conf = conf;
this.comm = comm;
wm = new WorkingModeSingle(); // par défault
tests = new HashMap();
init();
wm.add(tests);
}
/**
* Créé grâce à des requête sur la base
* On remplit l'ArrayList tests pour stocker toute la base en mémoire
*/
public void init(){
//les classes Test et Message ont été généré préalablement
//et contiennent les même champs de classes que les colones de la table correspondante dans la BD
Test t1 = new Test (1, "TestRAM", "F", 7, 1, "F", 000, 000, 00, 00, 0, 00);
Message m1 = new Message(1, Error, 1, 01, "Send", 0, "Anomalie Bit1, LSB", 0, 0);
// ajout des params si nécessaire
t1.add(m1);
tests.add(t1);
// et ce pour toute la base => beaucoup d 'objet de lignes de code !
}
/**
* Grand switch généré automatiquement
*
*/
public void simule(){
String cmd = comm.receiveCmd()
// switch sur cmd ou sur un int associé (id du test par exemple, mais nécessite un lookup dans la HashMap)
switch(cmd){
case cmd:
wm = conf.getWorkingMode(); //single, random ou scroll
wm.answer(cmd); // envoie un ou plusieurs messages suivant la commande
break;
// et ce pour tous les messages entrant
case default:
wm.sendErrorProtocol();
}
}
} |
Partager