[cooperativefsm] r12 committed - Vi carico quello che ho fatto fino a adesso, ovvero buona parte delle ...

  • From: codesite-noreply@xxxxxxxxxx
  • To: cooperativefsm@xxxxxxxxxxxxx
  • Date: Tue, 13 Oct 2009 14:53:54 +0000

Revision: 12
Author: svanerac@xxxxxxxxx
Date: Tue Oct 13 07:53:08 2009
Log: Vi carico quello che ho fatto fino a adesso, ovvero buona parte delle classe Input e InputTast. Piccolo particolare: non funziona la lettura da tastiera, intesa proprio come getChar..e non capisco il motivo, anche perchè sto usando la classe servizio scaricata dal sito di baroni che mi sembra giusta!?!probabilmente è una cazzata ma non la trovo, quindi provate a vedere se riuscite a risolverla voi!

Il resto "dovrebbe" funzionare, mancano ancora i controlli per la correttezza dei dati inseriti (ad es: una relazione riguarda due transizioni che effettivamente esistono..). Questi probabilmente vanno fatti in jml sotto forma di pre e post condizioni. Prima di aggiungerli volevo comunque vedere se il resto funzionava ( cioè immettendo dei dati corretti).
Fate sapere...
http://code.google.com/p/cooperativefsm/source/detail?r=12

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/Stato.java
 /trunk/cooperativefsm/src/cooperativefsm/StatoCorrente.java
 /trunk/cooperativefsm/src/cooperativefsm/Transizione.java

=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Fsm.java Mon Oct 5 14:37:12 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Fsm.java Tue Oct 13 07:53:08 2009
@@ -11,19 +11,40 @@

     private String id;
     private int numStati;
-    private Vector<Stato> stati;
+    private Vector<Stato>       stati;
     private Vector<Transizione> transizioni;
     private int numRelazioniSincroneTransizioniUscenti;


-
- public Fsm (String _id, Vector<Stato> _stati,Vector<Transizione> _transizioni) { // costruttore di una macchina a stati finiti
-
-        id=_id;
-        stati = _stati;
+    /**
+     * Costruttore di una fsm
+     */
+
+    public Fsm (String _id)
+    {
+        id          = _id;
+        stati       = new Vector<Stato> ();
+        transizioni = new Vector<Transizione> ();
+    }
+
+ /** Costruttore (con argomenti in più...) di una macchina a stati finiti ... non so se servirà!?!
+     *
+     * @param _id
+     * @param _stati
+     * @param _transizioni
+     */
+
+ public Fsm (String _id, Vector<Stato> _stati,Vector<Transizione> _transizioni) {
+
+        id          = _id;
+        stati       = _stati;
         transizioni = _transizioni;

      }
+
+     public String getId(){
+     return id;
+     }

public void addStato(Stato s) { //aggiunge uno stato al vector listaStati
         stati.add(s);
@@ -33,18 +54,32 @@
         return stati;
     }

-    public Stato getStato (int indice)  {
+    public Stato getStatoAt (int indice)  {

         Stato s = (Stato) stati.get(indice);
         return s;
     }

-    public Vector<Transizione> getTransizioni()
-    {
+
+
+
+    public void addTrans (Transizione t)    {
+        transizioni.add(t);
+    }
+
+    public Vector<Transizione> getTransizioni()    {
         return transizioni;
     }

-
+    public Transizione getTransizioneAt (int indice)    {
+        Transizione t = transizioni.get(indice);
+        return t;
+    }
+
+
+
+
+
      public void setTransizioniUscentiStati(){
          //TODO
      }
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Input.java Mon Oct 5 14:37:12 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Input.java Tue Oct 13 07:53:08 2009
@@ -8,117 +8,161 @@
 import java.lang.*;


-public class Input {
-
- //Attributi private, metodi public, information hiding ;), per accederci
-    //utilizza i get e i set
-
-    //Ricordati il specificatore del tipo di collection per i vector,
-    //tipo Vector<nome_classe>
+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)
-    private Vector<Stato> listaS;
-    private Vector<Transizione> listaT;
+ //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;
+    private Vector<Fsm> listaFsm;


-    /*
-     Metodo che inizializza una vera e propria sessione di simulazione
-
+
+    /**
+     * Metodo 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
      */
+
     public Simulazione leggiSimulazione()
-            {
-             int numFsm=2;
-             int i = 0;
-             for(i=0; i<numFsm; i++)
-             {
-             Fsm fsm = creaFsm (Integer.toString(i));
-             listaFSM.add(fsm);
-             }
-
-             //Lettura stato iniziale
-             StatoCorrente statoIniziale = leggiStatoIniziale();
-
-             //Lettura relazioni
-             relazioniTransizioni = leggiRelazioni();
-
-             //Controllo dei vincoli di correttezza della simulazione
-             if(!simulazioneCorretta() )
-             {
-                   //codice per comunicare l'errore all'utente
-             }
-
- //L'interfaccia tra io e core è data da questa riga, è l'unico punto di incontro - return (new Simulazione(listaFSM, relazioniTransizioni, statoIniziale));
-            }
+    {
+         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
+   }



-
-    /*
- *Metodo che controlla la correttezza delle informazione relative alla simulazione
-     * che sono state introdotte/lette
-     *
-     */
-    public boolean simulazioneCorretta ()
-        {
-            boolean correct = true;
-
-            //////
-
-            return correct;
-        }
-
-
-
-
-
+ //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
+      */
+
+     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 (che però non esiste ancora) - * La lettura del numero di stati può essere effettuata da tastiera o da file xml
-    *
+    * 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 leggiStati (String nomeFsm)
-        {
-            listaS = new Vector();
-            /*for (int i=0; i<numStati; i++)
+
+     public void inizializzaStati (Fsm x, int numStat)
+     {
+            for (int i = 0; i < numStat; i++)
             {
             Stato s = new Stato (i);
-            macch1.addStato(s);
-            }
-            */
-
-        }
+            x.addStato(s);
+            }
+     }





      /**
- * Metodo che crea la lista delle transizioni di una fsm (che però non esiste ancora) - * La lettura delle transizioni può essere effettuata da tastiera o da file xml
-    *
- * @param Serve per identificare la fsm nel file xml, oppure è il nome assegnatole da tastiera
+      * 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 leggiTransizioni (String nomeFsm)
-        {
-            listaT = new Vector();
-            boolean ciSonoTrans= true;
-
-            while (ciSonoTrans)
-            {
-                //Stato sorg,dest;
-                //Transizione t = new Transizione(sorg,dest);
-                //macch1.listaTrans.add(t);
-            }
-
-        }
+     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
+
+
+     }



@@ -129,46 +173,54 @@
       * @return la nuova istanza di Fsm
       */

-     public Fsm creaFsm (String nome){
-        Fsm macchina= new Fsm ( nome , listaS, listaT);
-
+     public Fsm creaFsm (String nome)
+     {
+        Fsm macchina= new Fsm ( nome );
         return macchina;
      }




-
-        //ottiene dal parser lo stato iniziale e imposta lo stato corrente
-        //lo stato deve € al vettore macch1.listaStati --->controllo!
-        public StatoCorrente leggiStatoIniziale()
-            {
-            StatoCorrente s = new StatoCorrente ();
-
-            //s.sCorrenteFsm1 = ;
-            //s.sCorrenteFsm2 = ;
-
-            return s;
-            }
+
+
+
+    /**
+     * 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 ricava le relazioni tra le transizioni delle 2 FSM
- * @return il vettore contenente le relazioni tra TUTTE le transizioni [...]
-         */
-        public  Simulazione.Relazione[][] leggiRelazioni (){
- 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];
-
-            Transizione t1,t2;
-            //RelazioneTransizioni r = new RelazioneTransizioni (t1,t2);
-            //listaRelazioni.add(r);
-
-            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 Sat Oct 3 08:01:59 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/InputTast.java Tue Oct 13 07:53:08 2009
@@ -1,10 +1,105 @@
 package cooperativefsm;

 /**
+ * Classe che eredita dalla classe padre Input, e ne sovrascrive alcuni metodi in modo da
+ * specializzarli per la lettura da tastiera
  *
  * @author Renato
  */
+
+import java.util.Vector;
+
 public class InputTast extends Input
 {
-    //super.
-}
+
+     private final String RICH_STATI = "Inserisci il numero di stati: ";
+ 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? "; + private final String TIPO_RELAZ = "TIPO DI RELAZIONE TRA LE TRANSIZIONI"; + private final String [] SCELTA_RELAZ = {"Relazione sincrona","Relazione mutuamente esclusiva"};
+
+     private final int min_stati = 2;
+
+
+     /**
+      * Costruttore specializzato per l'input da tastiera.
+      */
+     public InputTast ()
+     {
+
+     }
+
+
+     public @Override Stato leggiStato (String a)
+     {
+ Stato s = new Stato (Servizio.leggiInteroConMinimo(INS_STATO + a + ": ", 0));
+         return s;
+     }
+
+
+     public @Override int leggiNumStati ()
+     {
+ int numStati = Servizio.leggiInteroConMinimo(RICH_STATI, min_stati);
+        return numStati;
+     }
+
+
+     /**
+      *
+      * @return
+      */
+     public @Override boolean ciSonoTrans ()
+     {
+        boolean ciSono = Servizio.yesOrNo(RICH_TRANS);
+        return ciSono;
+     }
+
+
+     /**
+      *
+      * @param lista: la lista contenente le fsm
+      * @return lo stato corrente
+      *
+      */
+     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
+
+        s.setStati( c1, c2 );
+        return s;
+     }
+
+     public @Override boolean ciSonoRelaz()
+     {
+        return Servizio.yesOrNo(INS_RELAZ);
+     }
+
+     /**
+      * 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
+
+        MyMenu sceltaTipo = new MyMenu ( TIPO_RELAZ, SCELTA_RELAZ);
+        int sel = sceltaTipo.scegli();
+
+        switch (sel)
+            {
+                case 1: (relaz[t1][t2]) = (relaz[t1][t2]).SINCRONA;
+                case 2: (relaz[t1][t2]) = (relaz[t1][t2]).M_EX;
+                break;
+            }
+     }
+}
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/InputXML.java Sat Oct 3 08:01:59 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/InputXML.java Tue Oct 13 07:53:08 2009
@@ -9,11 +9,25 @@
  *
  * @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);}
+
+ public @Override StatoCorrente leggiStatoIniziale(Vector<Fsm> list) {return new StatoCorrente();}

 }
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Main.java Sat Oct 3 08:01:59 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Main.java Tue Oct 13 07:53:08 2009
@@ -20,38 +20,39 @@
      * @param args the command line arguments
      */

-    public static void main(String[] args) {
-
-    final String TIPOINPUT = "TIPO DI INPUT";
-    final String [] SCELTAINPUT  = {"da tastiera","da file xml"};
-    final String MESS_FINALE = "CIAO!";
-
-    MyMenu menuInput = new MyMenu( TIPOINPUT , SCELTAINPUT );
-    boolean fineProgramma=false;
-
-    int selezione = menuInput.scegli();
-
-    Input in;
-    switch (selezione)
-    {
-        case 1: in = new InputTast();
-        case 2: in = new InputXML();
-        default: in = new Input();
-        break;
-    }
-
-
- Simulazione s = in.leggiSimulazione(); //leggiSimulazione è un metodo della interfaccia Input, - //da cui ereditano le classi InputTast e InputXML
-
-    while (!fineProgramma)
-        {
-        fineProgramma = s.eseguiIterazione();
-        }
-
-
-    System.out.println(MESS_FINALE);
-
+    public static void main(String[] args)
+    {
+        final String TIPOINPUT = "TIPO DI INPUT";
+        final String [] SCELTAINPUT  = {"da tastiera","da file xml"};
+        final String MESS_FINALE = "CIAO!";
+
+        MyMenu menuInput = new MyMenu( TIPOINPUT , SCELTAINPUT );
+        boolean fineProgramma=false;
+
+        int selezione = menuInput.scegli();
+
+        Input in = null;
+
+            switch (selezione)
+            {
+                case 1: {in = new InputTast(); System.out.println("ok");}
+                case 2: in = new InputXML();
+                default : System.out.println("boh");
+            }
+
+
+ Simulazione s = in.leggiSimulazione(); //leggiSimulazione è un metodo della classe Input, + //da cui ereditano le classi InputTast e InputXML
+
+        while (!fineProgramma)
+            {
+            fineProgramma = s.eseguiIterazione();
+            }
+
+
+        System.out.println(MESS_FINALE);
+
+
     }


=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/MyMenu.java Sat Oct 3 08:01:59 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/MyMenu.java Tue Oct 13 07:53:08 2009
@@ -1,8 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
 package cooperativefsm;

 /**
@@ -31,10 +26,14 @@
        this.voci = voci;
   }

-  public int scegli ()
+  /**
+   *
+   * @return
+   */
+ 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.leggiIntero(RICHIESTA_INSERIMENTO, 0 ,voci.length);
   }

   public void stampaMenu ()
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Servizio.java Sat Oct 3 08:01:59 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Servizio.java Tue Oct 13 07:53:08 2009
@@ -5,6 +5,8 @@
  * @author Renato
  */
 import java.util.Scanner;
+import java.io.*;
+import java.lang.*;


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

-
+

          private static Scanner creaScanner ()
          {
@@ -70,6 +72,7 @@
               System.out.println(ERRORE_STRINGA_VUOTA);
              }
            } while (!finito);
+
           return valoreLetto;
          }

=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Simulazione.java Mon Oct 5 14:37:12 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Simulazione.java Tue Oct 13 07:53:08 2009
@@ -14,6 +14,7 @@
         ASINCRONA,
         M_EX
     }
+

     private Vector<Fsm> listaFsm;
private Vector<TransizioniAbilitate> transizioniAbilitate; //lista dinamica che varia a seconda dello stato corrente
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Stato.java Mon Oct 5 14:37:12 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Stato.java Tue Oct 13 07:53:08 2009
@@ -9,7 +9,8 @@

 public class Stato {

-    private int idStato;
+ private int idStato; //è il numero progressivo assegnato allo stato, riferito alla fsm cui appartiene + private String nome; //identifica un certo stato (attributo opzionale)
     private Vector<Transizione> transizioniUscenti;


=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/StatoCorrente.java Sat Oct 3 08:01:59 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/StatoCorrente.java Tue Oct 13 07:53:08 2009
@@ -6,9 +6,23 @@
* La classe stato corrente definisce la situazione della simulazione in un certo istante
  *
  */
-public class StatoCorrente {
-
+public class StatoCorrente
+
+{
     public Stato sCorrenteFsm1;
     public Stato sCorrenteFsm2;

-}
+    /**
+     * Imposta gli stati correnti delle varie fsm
+ * Per comodità si dà per scontato che le macchine di una simulazione siano 2
+     *
+     * @param corrente1
+     * @param corrente2
+     */
+    public void setStati ( Stato corrente1, Stato corrente2 )
+    {
+        sCorrenteFsm1 = corrente1;
+        sCorrenteFsm2 = corrente2;
+    }
+}
+
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Transizione.java Mon Oct 5 14:37:12 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Transizione.java Tue Oct 13 07:53:08 2009
@@ -11,21 +11,33 @@
  */
 public class Transizione {

-    private int id;
+ private int id; //è il numero progressivo assegnato alla transizione, riferito alla fsm cui appartiene + private String nome; //identifica una certa transizione (attributo opzionale)
     private Stato stato1;
     private Stato stato2;
private int numRelazioniSincroneStatoCorrente; //Indica quanti relazioni sincrone ha con altre transizioni nello stato corrente

-    public Transizione(Stato _stato1, Stato _stato2) {
-        stato1=_stato1;
-        stato2=_stato2;
+    /**
+ * Costruttore di una transizione a partire da due stati di una stessa fsm
+     *
+     * @param _stato1
+     * @param _stato2
+     */
+
+    public Transizione(Stato _stato1, Stato _stato2)
+    {
+        stato1 = _stato1;
+        stato2 = _stato2;
     }

- public void setNumRelazioniSincroneStatoCorrente( Simulazione.Relazione relazioni[][]){
+
+ public void setNumRelazioniSincroneStatoCorrente( Simulazione.Relazione relazioni[][])
+    {
         //TODO
     }

-    public int getNumRelazioniSincroneStatoCorrente(){
+    public int getNumRelazioniSincroneStatoCorrente()
+    {

         //TODO

Other related posts: