[cooperativefsm] r21 committed - [No log message]

  • From: codesite-noreply@xxxxxxxxxx
  • To: cooperativefsm@xxxxxxxxxxxxx
  • Date: Thu, 22 Oct 2009 08:53:53 +0000

Revision: 21
Author: luca.cominardi@xxxxxxxxx
Date: Thu Oct 22 01:53:27 2009
Log: [No log message]
http://code.google.com/p/cooperativefsm/source/detail?r=21

Modified:
 /trunk/cooperativefsm/src/cooperativefsm/Fsm.java
 /trunk/cooperativefsm/src/cooperativefsm/InputXML.java
 /trunk/cooperativefsm/src/cooperativefsm/Main.java
 /trunk/cooperativefsm/src/cooperativefsm/Simulazione.java
 /trunk/cooperativefsm/src/cooperativefsm/Transizione.java

=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Fsm.java Wed Oct 21 13:08:05 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Fsm.java Thu Oct 22 01:53:27 2009
@@ -113,6 +113,7 @@
      {
         s = s + transizioni.get(i).ToString();
      }
+     s+="\n";
      return s;
      }

=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/InputXML.java Wed Oct 21 13:21:47 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/InputXML.java Thu Oct 22 01:53:27 2009
@@ -26,18 +26,19 @@

 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
     private boolean rel=true;

     /**
      *
      * @param URI
-     * è il percorso del file xml da caricre
-     * è il costruttore della classe InputXML
+     * è il percorso del file xml da caricare
      * @throws SAXException
      * @throws IOException
      * @throws ParserConfigurationException
@@ -65,7 +66,7 @@
     /**
      *
      * @param list
-     * @return lo stato iniziale della simulazione
+     * @return lo stato iniziale della simulazione.
      * Metodo eriditato dalla classe Input
      */
     public @Override StatoCorrente leggiStatoIniziale(Vector<Fsm> list)
@@ -119,10 +120,12 @@
      */
     private Fsm insFSM(Node node)
     {
+ //booleani per verificare se sono stati inseriti gli stati, il nome, le transizioni e lo stato corrente
            boolean stati=true;
            boolean name=true;
            boolean trans=true;
            boolean stCor=true;
+
            String id = "";
            Vector<Stato> listaS = new Vector<Stato>();
            Vector<Transizione> listaT = new Vector<Transizione>();
@@ -364,12 +367,15 @@
         {
             inizRel();
         }
-
+        //Estraggo tutti i nodi figli del nodo passato come parametro
         NodeList nl = node.getChildNodes();
+ //Vector contenente array, ogni array ha 2 elementi: il primo è l'id della fsm, il secondo l'id della transizione
         Vector<Integer[]> ind = new Vector<Integer[]>();
+ //Vector d'appoggio usato per riordinare il vector ind usando come criterio l'id delle fsm contenute nel primo elemento dell'array
         Vector<Integer[]> app = new Vector<Integer[]>();
         String type="";

+ //Faccio passare tutti gli elementi del nodo e prendo solo quelli che hanno il nome transval
         for(int i=0, cnt=nl.getLength(); i<cnt; i++)
         {
             String test=nl.item(i).getNodeName();
@@ -378,6 +384,7 @@
             {
                 try
                 {
+                    //Inserisco una transizione all'interno del vector ind
                     ind.add(insTRANSVAL(nl.item(i)));
                 }
                 catch(IndexOutOfBoundsException e)
@@ -391,6 +398,7 @@
             }
         }

+ //Faccio passare tutti gli elementi del nodo cercando quello con nome type
         for(int i=0, cnt=nl.getLength(); i<cnt; i++)
         {
             String test=nl.item(i).getNodeName();
@@ -402,18 +410,16 @@
             }
         }

+ //Faccio passare tutto il vector ind e lo riordino in base all'id delle fsm
         for(int i=0; i<ind.size(); i++)
         {
//System.out.println("Ind fsm: " + ind.get(i)[0] + "\tInd tr: " + ind.get(i)[1]);
             for(int j=0; j<ind.size(); j++)
             {
-                if(i!=j)
-                {
-                    if(ind.get(i)[0]==ind.get(j)[0])
-                    {
- System.out.println("-- Non è possibile inserire una relazione tra due transizioni appartenenti alla stessa macchina!!! --");
-                        ind.get(-1);//per uscire dal programma
-                    }
+                if(ind.get(i)[0]==ind.get(j)[0] && i!=j)
+                {
+ System.out.println("-- Non è possibile inserire una relazione tra due transizioni appartenenti alla stessa macchina!!! --");
+                    ind.get(-1);//per uscire dal programma
                 }
                 int p=ind.get(j)[0];
                 if(i==p)
@@ -440,6 +446,7 @@
     /**
      *
      * @param node
+ * @return ritorna un array contenente nel primo elemento l'id della fsm, nel secondo l'id della transizione
      */
     private Integer[] insTRANSVAL(Node node)
     {
@@ -448,6 +455,7 @@
         String idfsm = "";
         String idtr = "";

+ //faccio passare tutti gli elemtni del nodo cercando quello con nome fsmval
         for(int i=0, cnt=nl.getLength(); i<cnt; i++)
         {
             String test=nl.item(i).getNodeName();
@@ -457,6 +465,7 @@
                  idfsm = nl.item(i).getFirstChild().getNodeValue();
             }
         }
+ //faccio passare tutti gli elemtni del nodo cercando quello con nome idval
         for(int i=0, cnt=nl.getLength(); i<cnt; i++)
         {
             String test=nl.item(i).getNodeName();
@@ -466,7 +475,9 @@
                  idtr = nl.item(i).getFirstChild().getNodeValue();
             }
         }
+        //ad a[0] assegno l'id della fsm che ha nome idfsm
         a[0] = getFsmIndexById(idfsm);
+ //ad a[1] assengo l'id della transizione che ha nome idtr e fa parte della fsm identificata da a[0]
         a[1] = getTrIdByName(idtr, a[0]);

         return a;
@@ -474,48 +485,52 @@

     private void inizRel()
     {
+ //inizializzo il doppio array relazioniTransizioni[][] con le dimensionsioni x e y
         int x = listaFsm.get(0).getNumTr();
         int y = listaFsm.get(1).getNumTr();
         relazioniTransizioni = new Simulazione.Relazione [x][y];
+        //riempo il doppio array con tutte relazioni asincrone
         for(int i=0; i<x; i++)
             for(int j=0; j<y; j++)
                 relazioniTransizioni[i][j]=Simulazione.Relazione.ASINCRONA;
-
+ //imposto il booleano rel a false, il doppio array è stato inizializzato e non c'è più bisogno di invocare questo metodo
         rel=false;
     }
     /**
      *
      * @param name
      * @param indexFsm
-     * @return
+ * @return l'indice della transizione identificata da name all'interno della fsm identificata da indexFsm
      */
private int getTrIdByName(String name, int indexFsm) throws IndexOutOfBoundsException, NullPointerException
     {
         Vector<Transizione> lT= listaFsm.get(indexFsm).getTransizioni();
         int k=-1;
-
+ //faccio passare tutte le transizioni cercando quella con nome uguale a name
         for(int i=0; i<lT.size(); i++)
         {
             if(lT.get(i).getNome().equalsIgnoreCase(name))
                 k=i;
         }
+ //Se non è stata trovata la transizione ritorno -1 altrimenti ritorno l'indice della transizione all'interno del vector
         return k;
     }

     /**
      *
      * @param id
-     * @return
+ * @return l'indice della fsm identificata da id all'interno di listaFsm
      */
private int getFsmIndexById(String id) throws IndexOutOfBoundsException, NullPointerException
     {
         int k = -1;
-
+ //faccio passare tutte le fsm cercando quella con id uguale a all'id della fsm
         for(int i=0; i<listaFsm.size(); i++)
         {
             if(listaFsm.get(i).getId().equalsIgnoreCase(id))
                 k=i;
         }
+ //Se non è stata trovata la fsm ritorno -1 altrimenti ritorno l'indice della fsm all'interno di listaFsm
         return k;
     }
     /**
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Main.java Wed Oct 21 13:21:47 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Main.java Thu Oct 22 01:53:27 2009
@@ -29,13 +29,15 @@
         final String [] SCELTAINPUT  = {"da tastiera","da file xml"};
         final String MESS_FINALE = "CIAO!";
final String XML_NOT = "-- File xml non formattato correttamente!!! --";
+        final String XML_DEF = "fsm.xml";

         MyMenu menuInput = new MyMenu( TIPOINPUT , SCELTAINPUT );
         boolean continua = true;
-        Input in = null;
+        Simulazione s = null;

         while(continua)
         {
+            Input in = null;
             int selezione = menuInput.scegli();

             switch (selezione)
@@ -44,38 +46,43 @@
                         break;
                         }
                 case 2: {
- String url=Servizio.leggiString("Inserire il percorso del file xml da leggere (fsm.xml): "); + String url=Servizio.leggiString("Inserire il percorso del file xml da leggere (" + XML_DEF + ")> ");
+                            if(url.equals(""))
+                                url=XML_DEF;
                             try {
- in = new InputXML(url); //l'uri del file xml dovrà essere passato da tastiera
-                                break;
-                            } catch (SAXException ex) {
+ in = new InputXML(url); //l'uri del file xml dovrà essere passato da tastiera, invio per il default + System.out.println("-- Simulazione creata con successo!!! --");
+                                s = in.leggiSimulazione();
+                                System.out.println(s.ToString());
+                            } catch (Exception ex) {
                                 System.out.println(XML_NOT);
-                            } catch (IOException ex) {
- System.out.println("-- Il file specificato non esiste!!! --"); - //Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
-                            } catch (ParserConfigurationException ex) {
-                                System.out.println(XML_NOT);
- //Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
-                            } catch (NullPointerException q) {
-                                System.out.println(XML_NOT);
-                            } catch (ArrayIndexOutOfBoundsException t) {
-                                System.out.println(XML_NOT);
+//                            } catch (IOException ex) {
+// System.out.println("-- Il file specificato non esiste!!! --"); +// //Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
+//                            } catch (ParserConfigurationException ex) {
+//                                System.out.println(XML_NOT);
+// //Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
+//                            } catch (NullPointerException q) {
+//                                System.out.println(XML_NOT);
+//                            } catch (ArrayIndexOutOfBoundsException t) {
+//                                System.out.println(XML_NOT);
                             } break;
                         }


                 case 0: {
                         System.out.println(MESS_FINALE);
-                        System.exit(0);
+                        //System.exit(0);
+                        continua=false;
                         }
             }
         }
- Simulazione s = in.leggiSimulazione(); //leggiSimulazione è un metodo della classe Input,
+          //leggiSimulazione è un metodo della classe Input,
//da cui ereditano le classi InputTast e InputXML
         //while (!fineProgramma)
-            {
+           // {
             //fineProgramma = s.eseguiIterazione();
-            }
+           // }

         //System.out.println(s.getListaFsm().get(0).ToString());
         //System.out.println(s.getListaFsm().get(1).ToString());
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Simulazione.java Wed Oct 21 13:08:05 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Simulazione.java Thu Oct 22 01:53:27 2009
@@ -77,5 +77,20 @@

         return true;
     }
+
+    public String ToString()
+    {
+        String s = "";
+        for(int i=0; i<listaFsm.size(); i++)
+        {
+            s+=listaFsm.get(i).ToString();
+        }
+        s+="\nRelazioni tra transizioni:\n" +
+                "Fsm1\tFsm2\tTipo\n";
+        for(int i=0; i<relazioniTransizioni.length; i++)
+            for(int j=0; j<relazioniTransizioni[0].length; j++)
+ s+="id: " + i + "\tid: " + j + "\t" + relazioniTransizioni[i][j]+"\n";
+        return s;
+    }

 }
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Transizione.java Wed Oct 21 01:53:14 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Transizione.java Thu Oct 22 01:53:27 2009
@@ -21,6 +21,7 @@
     /**
* Costruttore di una transizione a partire da due stati di una stessa fsm
      *
+     * @param _id
      * @param _stato1
      * @param _stato2
      */
@@ -34,9 +35,9 @@

     public String ToString()
     {
-        String s = ("Transizione numero: " + id + "\nNome: " + nome +
-                    "\nDallo stato " + stato1.getId() +
-                    " allo stato " + stato2.getId());
+        String s = ("\nTransizione numero: " + id + "\tNome:\t" + nome +
+                    "\nDallo stato:\t" + stato1.getId() +
+                    "\tallo stato:  " + stato2.getId());
         return s;
     }

Other related posts:

  • » [cooperativefsm] r21 committed - [No log message] - codesite-noreply