Revision: 22 Author: svanerac Date: Thu Oct 22 03:03:27 2009 Log: Nuova versione con un input da tastiera finalmente funzionante http://code.google.com/p/cooperativefsm/source/detail?r=22 Modified: /trunk/cooperativefsm/src/cooperativefsm/Input.java /trunk/cooperativefsm/src/cooperativefsm/InputTast.java /trunk/cooperativefsm/src/cooperativefsm/InputXML.java /trunk/cooperativefsm/src/cooperativefsm/Main.java =======================================--- /trunk/cooperativefsm/src/cooperativefsm/Input.java Wed Oct 21 13:21:47 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Input.java Thu Oct 22 03:03:27 2009
@@ -9,6 +9,10 @@ public abstract class Input {+ public Simulazione.Relazione relazioniTransizioni[][]; //Relazione è un tipo enum che definisce i tipi di relazione
+ public Vector<Fsm> listaFsm = new Vector<Fsm>(); + public StatoCorrente statoIniziale = new StatoCorrente(); + /*** Metodo astratto che inizializza una vera e propria sessione di simulazione
* La chiamata è comune sia per istanze di IputTast sia di InputXML, =======================================--- /trunk/cooperativefsm/src/cooperativefsm/InputTast.java Wed Oct 21 01:53:14 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/InputTast.java Thu Oct 22 03:03:27 2009
@@ -20,9 +20,9 @@ private final int min_stati = 2;- private Simulazione.Relazione relazioniTransizioni[][]; //Relazione è un tipo enum che definisce i tipi di relazione
- private Vector<Fsm> listaFsm; - private StatoCorrente statoIniziale;+// private Simulazione.Relazione relazioniTransizioni[][]; //Relazione è un tipo enum che definisce i tipi di relazione
+// private Vector<Fsm> listaFsm; +// private StatoCorrente statoIniziale; /** @@ -97,13 +97,13 @@ } } - public Stato leggiStato (String a) - { - int id = Servizio.leggiIntConMinimo(INS_STATO + a + ": ", 0); - Stato s = new Stato (id); - return s; - } - + + /** + * + * @param a: Stringa per il messaggio da visualizzare + * @param max: è di fatto il numero totale di stati di una fsm + * @return un nuovo stato che sicuramente appartiene alla fsm + */ public Stato leggiStatoConMax (String a, int max) { int id = Servizio.leggiInt(INS_STATO + a + ": ", 0, max); @@ -133,22 +133,7 @@ }//while } - /**- * Verifica l'appartenenza di una transizione a una fsm, in base al suo numero progressivo
- * @param num - * @param m - * @return - */ - public boolean appartTr (int num , Fsm m) - { - int n = m.getTransizioni().size(); - return num < n ; - } - - /** - * - * @return - */ + public boolean ciSonoTrans () { return Servizio.yesOrNo(RICH_TRANS); @@ -182,12 +167,12 @@ - - /*- * Metodo che crea un'istanza di Fsm a partire dalla variabili globali che sono
- * già state inizializzate - * @return la nuova istanza di Fsm - */ + /**+ * Metodo che crea un'istanza di Fsm a partire dalla variabili globali che sono
+ * già state inizializzate + * @param nome: nome della fsm + * @return una nuova istanza di fsm + */ public Fsm creaFsm (String nome) { @@ -208,9 +193,9 @@int m = listaFsm.elementAt(1).getTransizioni().size();//..seconda Simulazione.Relazione relazioniTransizioni[][] = (new Simulazione.Relazione [n+1][m+1]);
- for (int i=0; i<n+1; i++) - { - for(int j=0; j<m+1; j++) + for (int i=0; i<n; i++) + { + for(int j=0; j<m; j++)relazioniTransizioni[i][j] = relazioniTransizioni[i][j].ASINCRONA; //di default le transizioni sono asincrone tra loro, //solo quelle sincrone e m-ex saranno specificate
} @@ -221,7 +206,8 @@ /** * imposta una relazione tra due transizioni € a due fsm diverse - * @param relaz+ * @param relaz: l'array bidimensionale contenente tutte le possibili relazioni tra transizioni
+ * @param list: la lista di fsm in questione */public boolean imposta(Simulazione.Relazione[][] relaz, Vector<Fsm> list)
=======================================--- /trunk/cooperativefsm/src/cooperativefsm/InputXML.java Thu Oct 22 01:53:27 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/InputXML.java Thu Oct 22 03:03:27 2009
@@ -26,10 +26,7 @@ public class InputXML extends Input { - //Variabili globali utili per la costruzione della simulazione- private Simulazione.Relazione relazioniTransizioni[][]; //Relazione è un tipo enum che definisce i tipi di relazione
- private Vector<Fsm> listaFsm = new Vector<Fsm>(); - private StatoCorrente statoIniziale = new StatoCorrente(); + private Vector<Stato> statoCur = new Vector<Stato>(); private Document doc = null;//Variabile di appoggio per verificare se sono già state inserite delle relazioni
=======================================--- /trunk/cooperativefsm/src/cooperativefsm/Main.java Thu Oct 22 01:53:27 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Main.java Thu Oct 22 03:03:27 2009
@@ -5,9 +5,9 @@ package cooperativefsm; -import java.io.IOException; -import javax.xml.parsers.ParserConfigurationException; -import org.xml.sax.SAXException; +//import java.io.IOException; +//import javax.xml.parsers.ParserConfigurationException; +//import org.xml.sax.SAXException; /** * @@ -42,7 +42,11 @@ switch (selezione) { - case 1: {in = new InputTast(); + case 1: { + in = new InputTast();+ s = in.leggiSimulazione(); //leggiSimulazione è un metodo della classe Input, + System.out.println(s.ToString()); //da cui ereditano le classi InputTast e InputXML
+ continua = false; break; } case 2: { @@ -55,7 +59,7 @@ s = in.leggiSimulazione(); System.out.println(s.ToString()); } catch (Exception ex) { - System.out.println(XML_NOT);+ System.out.println(XML_NOT + ex.toString());
// } catch (IOException ex) {// System.out.println("-- Il file specificato non esiste!!! --"); // //Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
@@ -75,10 +79,11 @@ //System.exit(0); continua=false; } - } - } - //leggiSimulazione è un metodo della classe Input,- //da cui ereditano le classi InputTast e InputXML
+ }//switch + + + }//while + //while (!fineProgramma) // { //fineProgramma = s.eseguiIterazione();