[cooperativefsm] r13 committed - Nuova versione con un input da tastiera finalmente funzionante

  • From: codesite-noreply@xxxxxxxxxx
  • To: cooperativefsm@xxxxxxxxxxxxx
  • Date: Thu, 15 Oct 2009 14:02:55 +0000

Revision: 13
Author: svanerac
Date: Thu Oct 15 07:02:36 2009
Log: Nuova versione con un input da tastiera finalmente funzionante
http://code.google.com/p/cooperativefsm/source/detail?r=13

Modified:
 /trunk/cooperativefsm/src/cooperativefsm/Fsm.java
 /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/MyMenu.java
 /trunk/cooperativefsm/src/cooperativefsm/Servizio.java
 /trunk/cooperativefsm/src/cooperativefsm/Simulazione.java
 /trunk/cooperativefsm/src/cooperativefsm/StatoCorrente.java
 /trunk/cooperativefsm/src/cooperativefsm/Transizione.java

=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Fsm.java Tue Oct 13 07:53:08 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Fsm.java Thu Oct 15 07:02:36 2009
@@ -46,6 +46,14 @@
      return id;
      }

+     public int getNumStati(){
+        numStati = stati.size();
+        return numStati;
+     }
+
+     public int getNumTr(){
+     return transizioni.size();
+     }
public void addStato(Stato s) { //aggiunge uno stato al vector listaStati
         stati.add(s);
     }
@@ -92,5 +100,18 @@
          //TODO
      }

+     public String ToString ()
+     {
+     String s = new String();
+     s = ("\nNome della Fsm: " + id +
+                        "\nNumero di stati: " + numStati +
+                        "\nElenco delle transizioni: " );
+
+     for (int i = 0; i<transizioni.size(); i++)
+     {
+        s.concat(transizioni.get(i).ToString());
+     }
+     return s;
+     }

   }
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Input.java Tue Oct 13 07:53:08 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Input.java Thu Oct 15 07:02:36 2009
@@ -5,222 +5,29 @@
  * @author Alessandro Ferrari, Carlo Svanera, Luca Cominardi
  */
 import java.util.Vector;
-import java.lang.*;
-
-
-public abstract class  Input {
-
-
-
- //Per i nomi degli attributi fai riferimento ai diagrammi uml che ho fatto
-
- //Questi attributi sono in realtà variabili di appoggio che servono ai metodi (astatti) ... SERVONO????
-    //private Vector<Stato>       listaS;
-    //private Vector<Transizione> listaT;
-
- //La documentazione su come deve essere relazioniTransizioni è presente nelle mail
-    //Se non è ancora chiara contattami
-
- private Simulazione.Relazione relazioniTransizioni[][]; //Relazione è un tipo enum che definisce i tipi di relazione
-    private Vector<Fsm> listaFsm;
-
-
-
+
+public abstract class  Input
+{
+
     /**
-     * Metodo che inizializza una vera e propria sessione di simulazione
+ * Metodo astratto che inizializza una vera e propria sessione di simulazione
      * La chiamata è comune sia per istanze di IputTast sia di InputXML,
- * mentre i metodi che devono specializzarsi sono sovrascritti nelle sottoclassi
+     * mentre il metodo è sovrascritto nelle sottoclassi
      */

-    public Simulazione leggiSimulazione()
-    {
-         this.inizializzaListaFsm();
-
-
- for (int i = 0; i < listaFsm.size(); i++) //si inizializza ogni istanza di fsm nella listaFsm - { //con i suoi stati e le sue transizioni
-            Fsm appoggio = listaFsm.elementAt(i);
-
- int numStati = this.leggiNumStati(); //inserimento degli stati
-            this.inizializzaStati(appoggio, numStati);
-
- this.inizializzaTrans(appoggio); //inserimento delle transizioni
-         }
-
- StatoCorrente statoIniziale = leggiStatoIniziale(listaFsm); //Lettura stato iniziale - relazioniTransizioni = leggiNumRelazioni(); //Lettura relazioni
-
-         while (ciSonoRelaz())
-             imposta(relazioniTransizioni);
-
- if(!simulazioneCorretta() ) //Controllo dei vincoli di correttezza della simulazione
-                     {
- System.out.println("I dati inseriti non sono validi!");;
-                     }
-
-
- return (new Simulazione(listaFsm, relazioniTransizioni, statoIniziale)); //L'interfaccia tra io e core è data da questa riga, è l'unico punto di incontro
-   }
+    public abstract Simulazione leggiSimulazione();


-
- //questi metodi in teoria saranno mai invocati perchè non sono mai create istanze della clase Input; - //saranno le loro versioni sovrascritte nelle varie sottoclassi a funzionare
-
-    public abstract int leggiNumStati();
-
-    public abstract boolean ciSonoTrans();
-
-    public abstract Stato leggiStato(String a);
-
        /**
       * Metodo che imposta lo stato iniziale e imposta lo stato corrente
-      *  lo stato deve € al vettore macch1.listaStati --->controllo!
-      * @return
+      *
+      * @return Lo stato iniziale della simulazione
       */

      public abstract StatoCorrente leggiStatoIniziale(Vector<Fsm> list);

-     public abstract void imposta(Simulazione.Relazione[][] relaz);
-
-     public abstract boolean ciSonoRelaz();
-
-
-    //fine metodi abstract
-
-
-
-    public Vector<Fsm> getListaFsm ()
-    {
-        return listaFsm;
-    }
-
-
-
-
-    /**
- * Metodo indipendente dal tipo di input, verrà chiamato da entrambe le sottoclassi. - * Definisce e istanzia un certo numero (2 in questo caso) di Fsm per la simulazione
-     */
-
-    public void inizializzaListaFsm()
-    {
-        int numFsm = 2;
-
-        for(int i = 0; i < numFsm; i++)
-             {
-             Fsm fsm = creaFsm (Integer.toString(i));
-             listaFsm.add(fsm);
-             }
-    }
-
-
-
-    /**
-    * Metodo che crea la lista degli stati di una fsm
-    *
- * @param Serve per identificare la fsm nel file xml, oppure è il nome assegnatole da tastiera
-    * @param Numero di stati
-    */
-
-     public void inizializzaStati (Fsm x, int numStat)
-     {
-            for (int i = 0; i < numStat; i++)
-            {
-            Stato s = new Stato (i);
-            x.addStato(s);
-            }
-     }
-
-
-
-
-
-     /**
-      * Metodo che crea la lista delle transizioni di una fsm
-      *
-      * @param La Fsm a cui va aggiunta una transizione
-      * @param Stato sorgente della transizione
-      * @param Stato destinazione della transizione
-    */
-     public void inizializzaTrans (Fsm x)
-     {
-
-
- boolean continua = this.ciSonoTrans(); //metodo che verrà sovrascritto dalle sottoclassi
-
-            while (continua)
-            {
-                Stato sorgente = this.leggiStato("sorgente");
-                Stato destinazione = this.leggiStato("destinazione");
- //Controllo per verificare che gli stati € alla fsm [...] <--------------TODO------------------!!!!!
-
-                Transizione t = new Transizione (sorgente,destinazione);
-                x.addTrans(t);
-
-                continua = this.ciSonoTrans();
-            }//while
-
-
-     }
-
-
-
-
-     /*
- * Metodo che crea un'istanza di Fsm a partire dalla variabili globali che sono
-      * già state inizializzate
-      * @return la nuova istanza di Fsm
-      */
-
-     public Fsm creaFsm (String nome)
-     {
-        Fsm macchina= new Fsm ( nome );
-        return macchina;
-     }
-
-
-
-
-
-
-
-    /**
-     * Metodo che ricava le relazioni tra le transizioni delle 2 FSM
- * @return il vettore contenente le relazioni tra TUTTE le transizioni [...]
-     */
-     public  Simulazione.Relazione[][] leggiNumRelazioni ()
-     {
- int n = listaFsm.elementAt(0).getTransizioni().size();//N° transizioni prima fsm - 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++)
- relazioniTransizioni[i][j] = relazioniTransizioni[i][j].ASINCRONA; //di default le transizioni sono asincrone tra loro, - //solo quelle sincrone e m-ex saranno specificate
-            }
-
-            return relazioniTransizioni;
-     }
-
-
-
-
-    /**
- * Metodo che controlla la correttezza delle informazione relative alla simulazione
-     * che sono state introdotte/lette
-     *
-     */
-    public boolean simulazioneCorretta ()
-        {
-            boolean correct = true;
-
-            //TODO
-
-            return correct;
-        }
+
+


 }
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/InputTast.java Tue Oct 13 07:53:08 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/InputTast.java Thu Oct 15 07:02:36 2009
@@ -10,9 +10,8 @@
 import java.util.Vector;

 public class InputTast extends Input
-{
-
-     private final String RICH_STATI = "Inserisci il numero di stati: ";
+{
+ private final String RICH_STATI = "Inserisci il numero di stati della fsm "; private final String RICH_TRANS = "Vuoi inserire una nuova transizione? ";
      private final String INS_STATO   = "Inserire il numero dello stato ";
private final String INS_RELAZ = "Vuoi inserire una nuova relazione tra transizioni? ";
@@ -21,77 +20,215 @@

      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;
+
+
      /**
       * Costruttore specializzato per l'input da tastiera.
       */
      public InputTast ()
      {
-
+         listaFsm = new Vector<Fsm> ();
+     }
+
+     public @Override Simulazione leggiSimulazione()
+    {
+        this.inizializzaListaFsm();
+
+ for (int i = 0; i < listaFsm.size(); i++) //si inizializza ogni istanza di fsm nella listaFsm + { //con i suoi stati e le sue transizioni
+            Fsm appoggio = listaFsm.elementAt(i);
+
+ int numStati = this.leggiNumStati(appoggio.getId()); //inserimento degli stati
+            this.inizializzaStati(appoggio, numStati);
+
+ this.inizializzaTrans(appoggio); //inserimento delle transizioni
+        }
+
+ statoIniziale = leggiStatoIniziale(listaFsm); //Lettura stato iniziale
+
+ relazioniTransizioni = initRelazioni(); //Inizializza l'array bidimensionale di relazioni
+        while (ciSonoRelaz())
+             imposta(relazioniTransizioni, listaFsm);
+
+
+        System.out.println("Simulazione caricata correttamente!");
+ return (new Simulazione(listaFsm, relazioniTransizioni, statoIniziale)); //L'interfaccia tra io e core è data da questa riga, è l'unico punto di incontro
+
+   }
+
+
+    /**
+ * Definisce e istanzia un certo numero (2 in questo caso) di Fsm per la simulazione
+     */
+
+    public void inizializzaListaFsm()
+    {
+        int numFsm = 2;
+        for(int i = 0; i < numFsm; i++)
+             {
+             Fsm fsm = creaFsm (Integer.toString(i));
+             listaFsm.add(fsm);
+             }
+    }
+
+
+     public int leggiNumStati (String nome_fsm)
+     {
+ return Servizio.leggiIntConMinimo(RICH_STATI + nome_fsm + ": ", min_stati);
      }

-
-     public @Override Stato leggiStato (String a)
-     {
- Stato s = new Stato (Servizio.leggiInteroConMinimo(INS_STATO + a + ": ", 0));
+
+    /**
+    * Metodo che crea la lista degli stati di una fsm
+    *
+    * @param Fsm di appoggio
+    * @param Numero di stati
+    */
+
+     public void inizializzaStati (Fsm x, int numStat)
+     {
+            for (int i = 0; i < numStat; i++)
+            {
+            Stato s = new Stato (i);
+            x.addStato(s);
+            }
+     }
+
+     public Stato leggiStato (String a)
+     {
+         int id = Servizio.leggiIntConMinimo(INS_STATO + a + ": ", 0);
+         Stato s = new Stato (id);
          return s;
      }

-
-     public @Override int leggiNumStati ()
-     {
- int numStati = Servizio.leggiInteroConMinimo(RICH_STATI, min_stati);
-        return numStati;
+     public Stato leggiStatoConMax (String a, int max)
+     {
+         int id = Servizio.leggiInt(INS_STATO + a + ": ", 0, max);
+         Stato s = new Stato (id);
+         return s;
      }

+
+     /**
+      * Metodo che crea la lista delle transizioni di una fsm
+      * @param La Fsm a cui vanno aggiunte un certo numero di transizioni
+    */
+     public void inizializzaTrans (Fsm x)
+     {
+ boolean continua = this.ciSonoTrans(); //metodo che verrà sovrascritto dalle sottoclassi
+
+        while (continua)
+        {
+ Stato sorgente = this.leggiStatoConMax("sorgente", x.getNumStati()-1); + Stato destinazione = this.leggiStatoConMax("destinazione", x.getNumStati()-1);
+
+            Transizione t = new Transizione (sorgente,destinazione);
+            x.addTrans(t);
+            System.out.println("Transizione inserita correttamente!");
+
+            continua = this.ciSonoTrans();
+        }//while
+     }

      /**
-      *
+ * Verifica l'appartenenza di una transizione a una fsm, in base al suo numero progressivo
+      * @param num
+      * @param m
       * @return
       */
-     public @Override boolean ciSonoTrans ()
-     {
-        boolean ciSono = Servizio.yesOrNo(RICH_TRANS);
-        return ciSono;
-     }
+     public boolean appartTr (int num , Fsm m)
+     {
+         int n = m.getTransizioni().size();
+         return num < n ;
+     }
+
+     /**
+      *
+      * @return
+      */
+     public boolean ciSonoTrans ()
+     {
+        return Servizio.yesOrNo(RICH_TRANS);
+     }
+
+
+     public boolean ciSonoRelaz()
+     {
+        return Servizio.yesOrNo(INS_RELAZ);
+     }
+


      /**
       *
-      * @param lista: la lista contenente le fsm
-      * @return lo stato corrente
+      * @param la lista contenente le fsm
+      * @return lo stato iniziale della simulazione
       *
       */
      public @Override StatoCorrente leggiStatoIniziale (Vector<Fsm> lista)
      {
         StatoCorrente s = new StatoCorrente ();
-
- Stato c1 = leggiStato("corrente della fsm " + lista.get(0).getId()); - Stato c2 = leggiStato("corrente della fsm " + lista.get(1).getId());
-
-        //TODO controllo di appartenenza
+
+ Stato c1 = leggiStatoConMax("corrente della fsm " + lista.get(0).getId(), lista.get(0).getNumStati() - 1); + Stato c2 = leggiStatoConMax("corrente della fsm " + lista.get(1).getId(), lista.get(1).getNumStati() - 1);

         s.setStati( c1, c2 );
+
         return s;
      }

-     public @Override boolean ciSonoRelaz()
-     {
-        return Servizio.yesOrNo(INS_RELAZ);
-     }
-
-     /**
+
+
+
+     /*
+ * Metodo che crea un'istanza di Fsm a partire dalla variabili globali che sono
+      * già state inizializzate
+      * @return la nuova istanza di Fsm
+      */
+
+     public Fsm creaFsm (String nome)
+     {
+        Fsm macchina= new Fsm ( nome );
+        return macchina;
+     }
+
+
+
+
+/**
+     * Metodo che ricava le relazioni tra le transizioni delle 2 FSM
+ * @return il vettore contenente le relazioni tra TUTTE le transizioni [...]
+     */
+     public  Simulazione.Relazione[][] initRelazioni ()
+     {
+ int n = listaFsm.elementAt(0).getTransizioni().size();//N° transizioni prima fsm + 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++)
+ relazioniTransizioni[i][j] = relazioniTransizioni[i][j].ASINCRONA; //di default le transizioni sono asincrone tra loro, + //solo quelle sincrone e m-ex saranno specificate
+            }
+
+            return relazioniTransizioni;
+     }
+
+
+      /**
       * imposta una relazione tra due transizioni € a due fsm diverse
       * @param relaz
       */

-     public @Override void imposta(Simulazione.Relazione[][] relaz)
-     {
- int t1 = Servizio.leggiInteroConMinimo("Transizione di riferimento della fsm 1", 0);
-            //controllo di appartenenza
- int t2 = Servizio.leggiInteroConMinimo("Transizione di riferimento della fsm 2", 0);
-            //controllo di appartenenza
-
+ public boolean imposta(Simulazione.Relazione[][] relaz, Vector<Fsm> list)
+     {
+ int t1 = Servizio.leggiInt("Transizione di riferimento della fsm 1", 0, list.get(0).getNumTr()- 1); + int t2 = Servizio.leggiInt("Transizione di riferimento della fsm 2", 0, list.get(1).getNumTr() - 1);
+
         MyMenu sceltaTipo = new MyMenu ( TIPO_RELAZ, SCELTA_RELAZ);
         int sel = sceltaTipo.scegli();

@@ -101,5 +238,10 @@
                 case 2: (relaz[t1][t2]) = (relaz[t1][t2]).M_EX;
                 break;
             }
-     }
-}
+
+        System.out.println("Relazione aggiunta correttamente!");
+        return true;
+     }
+
+
+}
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/InputXML.java Tue Oct 13 07:53:08 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/InputXML.java Thu Oct 15 07:02:36 2009
@@ -10,24 +10,29 @@
  * @author Renato
  */

+
+
 import java.util.Vector;

 public class InputXML extends Input {

-    public InputXML()
-    {
-    }
-
-    public @Override int leggiNumStati(){return 0;}
-
-    public @Override boolean ciSonoTrans(){ return true;}
-
-    public @Override boolean ciSonoRelaz() {return true;}
-
-    public @Override void imposta (Simulazione.Relazione [][] relaz) {}
-
-    public @Override Stato leggiStato(String a){ return new Stato(0);}
+ private Simulazione.Relazione relazioniTransizioni[][]; //Relazione è un tipo enum che definisce i tipi di relazione
+     private Vector<Fsm> listaFsm;
+     private StatoCorrente statoIniziale;
+
+
+     public InputXML()
+    {
+
+    }
+
+    public @Override Simulazione leggiSimulazione()
+    {
+ return new Simulazione(listaFsm, relazioniTransizioni, statoIniziale);
+    }

public @Override StatoCorrente leggiStatoIniziale(Vector<Fsm> list) {return new StatoCorrente();}

-}
+
+
+}
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Main.java Tue Oct 13 07:53:08 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Main.java Thu Oct 15 07:02:36 2009
@@ -13,7 +13,6 @@
  * @author Cominardi Luca, Ferrari Alessandro, Svanera Carlo
  */

-
 public class Main {

     /**
@@ -27,7 +26,7 @@
         final String MESS_FINALE = "CIAO!";

         MyMenu menuInput = new MyMenu( TIPOINPUT , SCELTAINPUT );
-        boolean fineProgramma=false;
+        boolean fineProgramma = false;

         int selezione = menuInput.scegli();

@@ -35,25 +34,29 @@

             switch (selezione)
             {
-                case 1: {in = new InputTast(); System.out.println("ok");}
-                case 2: in = new InputXML();
-                default : System.out.println("boh");
+                case 1: {in = new InputTast();
+                        break;
+                        }
+                case 2: {in = new InputXML();
+                        break;
+                        }
+                case 0: {
+                        System.out.println(MESS_FINALE);
+                        System.exit(0);
+                        }
             }

-
- Simulazione s = in.leggiSimulazione(); //leggiSimulazione è un metodo della classe Input, + Simulazione s = in.leggiSimulazione(); //leggiSimulazione è un metodo della classe Input, //da cui ereditano le classi InputTast e InputXML
-
-        while (!fineProgramma)
-            {
-            fineProgramma = s.eseguiIterazione();
+        //while (!fineProgramma)
+            {
+            //fineProgramma = s.eseguiIterazione();
             }

+        //System.out.println(s.getListaFsm().get(0).ToString());
+        //System.out.println(s.getListaFsm().get(1).ToString());

         System.out.println(MESS_FINALE);
-
-
-    }
-
-
-}
+    }
+
+}
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/MyMenu.java Tue Oct 13 07:53:08 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/MyMenu.java Thu Oct 15 07:02:36 2009
@@ -33,7 +33,7 @@
public int scegli () //NB: non è stato fatto nessun controllo che il carattere inserito sia un intero
   {
        stampaMenu();
-       return Servizio.leggiIntero(RICHIESTA_INSERIMENTO, 0 ,voci.length);
+       return Servizio.leggiInt(RICHIESTA_INSERIMENTO, 0 ,voci.length);
   }

   public void stampaMenu ()
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Servizio.java Tue Oct 13 07:53:08 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Servizio.java Thu Oct 15 07:02:36 2009
@@ -6,7 +6,7 @@
  */
 import java.util.Scanner;
 import java.io.*;
-import java.lang.*;
+


 public class Servizio {
@@ -21,9 +21,46 @@
          private final static char RISPOSTA_SI='S';
          private final static char RISPOSTA_NO='N';

-
-
-         private static Scanner creaScanner ()
+ private static InputStreamReader reader = new InputStreamReader (System.in); + private static BufferedReader myInput = new BufferedReader (reader);
+
+          public static String leggiString(String messaggio)
+                {
+ //InputStreamReader reader = new InputStreamReader (System.in);
+                //BufferedReader myInput = new BufferedReader (reader);
+                System.out.println (messaggio);
+                String str= new String();
+                    try
+                    {
+                    str = myInput.readLine();
+                    }
+                    catch (IOException e)
+                    {
+                    System.out.println ("Si è verificato un errore: " + e);
+                    System.exit(-1);
+                    }
+                return str;
+                }
+
+            public static int leggiInt(String messaggio)
+                {
+
+                int i=0;
+                String a = leggiString(messaggio);
+                    try
+                    {
+                    i = Integer.parseInt(a);
+                    }
+                    catch (Exception e)
+                    {
+                    System.out.println ("Devi inserire un intero! ");
+                    return leggiInt(messaggio);
+                    }
+                return i;
+                }
+
+
+            private static Scanner creaScanner ()
          {
           Scanner creato = new Scanner(System.in);
           creato.useDelimiter(System.getProperty("line.separator"));
@@ -76,6 +113,27 @@
           return valoreLetto;
          }

+          public static char leggiCaratt (String messaggio)
+         {
+          boolean finito = false;
+          char valoreLetto = '\0';
+          do
+           {
+            String lettura = leggiString(messaggio);
+            if (lettura.length() > 0)
+             {
+              valoreLetto = lettura.charAt(0);
+              finito = true;
+             }
+            else
+             {
+              System.out.println(ERRORE_STRINGA_VUOTA);
+             }
+           } while (!finito);
+
+          return valoreLetto;
+         }
+
          public static boolean yesOrNo(String messaggio)
          {
                  String mioMessaggio = messaggio + 
"("+RISPOSTA_SI+"/"+RISPOSTA_NO+")";
@@ -93,7 +151,7 @@
           char valoreLetto = '\0';
           do
           {
-           valoreLetto = leggiChar(messaggio);
+           valoreLetto = leggiCaratt(messaggio);
            valoreLetto = Character.toUpperCase(valoreLetto);
            if (ammissibili.indexOf(valoreLetto) != -1)
                 finito  = true;
@@ -125,13 +183,13 @@
           return valoreLetto;
          }

-         public static int leggiInteroConMinimo(String messaggio, int minimo)
+         public static int leggiIntConMinimo(String messaggio, int minimo)
          {
           boolean finito = false;
           int valoreLetto = 0;
           do
            {
-            valoreLetto = leggiIntero(messaggio);
+            valoreLetto = leggiInt(messaggio);
             if (valoreLetto >= minimo)
              finito = true;
             else
@@ -141,13 +199,13 @@
           return valoreLetto;
          }

-         public static int leggiIntero(String messaggio, int minimo, int 
massimo)
+         public static int leggiInt(String messaggio, int minimo, int massimo)
          {
           boolean finito = false;
           int valoreLetto = 0;
           do
            {
-            valoreLetto = leggiIntero(messaggio);
+            valoreLetto = leggiInt(messaggio);
             if (valoreLetto >= minimo && valoreLetto<= massimo)
              finito = true;
             else
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Simulazione.java Tue Oct 13 07:53:08 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Simulazione.java Thu Oct 15 07:02:36 2009
@@ -33,9 +33,9 @@
      * @see Input,InputXML,InputTast
      */

- public Simulazione (Vector<Fsm> listaFSM, Relazione relazioni[][], StatoCorrente sc)
-    {
-        listaFsm = listaFSM;
+ public Simulazione (Vector<Fsm> _listaFsm, Relazione relazioni[][], StatoCorrente sc)
+    {
+        listaFsm = _listaFsm;
         relazioniTransizioni = relazioni;
         statoCorrente = sc;
     }
@@ -47,6 +47,11 @@
      *  state.
      *
      */
+
+    public Vector<Fsm> getListaFsm()
+    {
+    return listaFsm;
+    }

     private void setTransizioniAbilitate(){
         //TODO: vedi macchina a stati finiti uml
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/StatoCorrente.java Tue Oct 13 07:53:08 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/StatoCorrente.java Thu Oct 15 07:02:36 2009
@@ -11,6 +11,12 @@
 {
     public Stato sCorrenteFsm1;
     public Stato sCorrenteFsm2;
+
+    public StatoCorrente ()
+    {
+        sCorrenteFsm1 = new Stato(0);
+        sCorrenteFsm2 = new Stato(0);
+    }

     /**
      * Imposta gli stati correnti delle varie fsm
@@ -21,7 +27,9 @@
      */
     public void setStati ( Stato corrente1, Stato corrente2 )
     {
+        //sCorrenteFsm1 = new Stato(corrente1.getId());
         sCorrenteFsm1 = corrente1;
+        //sCorrenteFsm2 = new Stato(corrente2.getId());
         sCorrenteFsm2 = corrente2;
     }
 }
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Transizione.java Tue Oct 13 07:53:08 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Transizione.java Thu Oct 15 07:02:36 2009
@@ -30,6 +30,13 @@
         stato2 = _stato2;
     }

+    public String ToString()
+    {
+        String s = ("Transizione numero: " + id +
+                    "\nDallo stato " + stato1.getId() +
+                    " allo stato " + stato2.getId());
+        return s;
+    }

public void setNumRelazioniSincroneStatoCorrente( Simulazione.Relazione relazioni[][])
     {

Other related posts:

  • » [cooperativefsm] r13 committed - Nuova versione con un input da tastiera finalmente funzionante - codesite-noreply