[cooperativefsm] r23 committed - [No log message]

  • From: codesite-noreply@xxxxxxxxxx
  • To: cooperativefsm@xxxxxxxxxxxxx
  • Date: Thu, 29 Oct 2009 16:14:50 +0000

Revision: 23
Author: luca.cominardi@xxxxxxxxx
Date: Thu Oct 29 09:14:04 2009
Log: [No log message]
http://code.google.com/p/cooperativefsm/source/detail?r=23

Modified:
 /trunk/cooperativefsm/fsm.xml
 /trunk/cooperativefsm/src/cooperativefsm/InputXML.java
 /trunk/cooperativefsm/src/cooperativefsm/Main.java
 /trunk/cooperativefsm/src/cooperativefsm/Simulazione.java
 /trunk/cooperativefsm/src/cooperativefsm/StatoCorrente.java

=======================================
--- /trunk/cooperativefsm/fsm.xml       Wed Oct 21 13:22:11 2009
+++ /trunk/cooperativefsm/fsm.xml       Thu Oct 29 09:14:04 2009
@@ -2,7 +2,7 @@
 <simulation>
        <fsm>
                <name>A</name>
-               <states>5</states>
+               <states>6</states>
                <transition>
                        <id>a</id>
                        <s1>1</s1>
@@ -112,6 +112,4 @@
                </transval>
                <type>mutex</type>
        </relation>
-
-
 </simulation>
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/InputXML.java Thu Oct 22 03:03:27 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/InputXML.java Thu Oct 29 09:14:04 2009
@@ -543,5 +543,4 @@
return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file);
     }

-
-}
+}//end class
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Main.java Thu Oct 22 03:03:27 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Main.java Thu Oct 29 09:14:04 2009
@@ -30,6 +30,7 @@
         final String MESS_FINALE = "CIAO!";
final String XML_NOT = "-- File xml non formattato correttamente!!! --";
         final String XML_DEF = "fsm.xml";
+        final String SALVA_SIM = "Vuoi salvare la simulazione? ";

         MyMenu menuInput = new MyMenu( TIPOINPUT , SCELTAINPUT );
         boolean continua = true;
@@ -59,7 +60,8 @@
                                 s = in.leggiSimulazione();
                                 System.out.println(s.ToString());
                             } catch (Exception ex) {
- System.out.println(XML_NOT + ex.toString()); + //System.out.println(XML_NOT + ex.toString());
+                                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);
@@ -75,7 +77,7 @@


                 case 0: {
-                        System.out.println(MESS_FINALE);
+                        //System.out.println(MESS_FINALE);
                         //System.exit(0);
                         continua=false;
                         }
@@ -91,7 +93,17 @@

         //System.out.println(s.getListaFsm().get(0).ToString());
         //System.out.println(s.getListaFsm().get(1).ToString());
-
+        if(s!=null)
+        {
+            boolean salva = Servizio.yesOrNo(SALVA_SIM);
+            if(salva)
+            {
+ String url=Servizio.leggiString("Inserire il percorso dove salvare il file xml della simulazione (" + XML_DEF + ")> ");
+                if(url.equals(""))
+                    url=XML_DEF;
+                s.salvaSimulazione(url);
+            }
+        }
         System.out.println(MESS_FINALE);
     }

=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/Simulazione.java Thu Oct 22 01:53:27 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/Simulazione.java Thu Oct 29 09:14:04 2009
@@ -5,7 +5,9 @@
  * @author Alessandro Ferrari, Carlo Svanera, Luca Cominardi
  */
 import java.util.Vector;
-
+import java.io.*;
+import java.util.logging.Level;
+import java.util.logging.Logger;

 public class Simulazione {

@@ -77,6 +79,82 @@

         return true;
     }
+
+    public void salvaSimulazione(String file)
+    {
+        try {
+                scriviSimulazione(file);
+        } catch (IOException ex) {
+ Logger.getLogger(Simulazione.class.getName()).log(Level.SEVERE, null, ex);
+        }
+    }
+
+    private void scriviSimulazione(String file) throws IOException
+    {
+            FileWriter outFile = new FileWriter(file);
+            PrintWriter out = new PrintWriter(outFile);
+            out.println("<?xml version=\"1.0\"?>");
+            out.println("<simulation>");
+            for(int i=0; i<listaFsm.size(); i++)
+            {
+                out.println("\t<fsm>");
+                Fsm fsm=listaFsm.get(i);
+                out.println("\t\t<name>"+fsm.getId()+"</name>");
+                out.println("\t\t<states>"+fsm.getNumStati()+"</states>");
+                Vector<Transizione> tr = fsm.getTransizioni();
+                for(int j=0; j<tr.size(); j++)
+                {
+                    Transizione t=tr.get(j);
+                    out.println("\t\t<transition>");
+                    out.println("\t\t\t<id>"+t.getNome()+"</id>");
+ out.println("\t\t\t<s1>"+t.getStato1().getId()+"</s1>"); + out.println("\t\t\t<s2>"+t.getStato2().getId()+"</s2>");
+                    out.println("\t\t</transition>");
+                }
+ out.println("\t\t<current>"+statoCorrente.getStato(i).getId()+"</current>");
+                out.print("\t</fsm>\n");
+            }
+            //out.println("\n");
+            for(int x=0; x<listaFsm.get(0).getNumTr(); x++)
+            {
+                for(int y=0; y<listaFsm.get(1).getNumTr(); y++)
+                {
+                    if(relazioniTransizioni[x][y]!=Relazione.ASINCRONA)
+                    {
+                        out.println("\t<relation>");
+                        out.println("\t\t<transval>");
+ out.println("\t\t\t<fsmval>"+listaFsm.get(0).getId()+"</fsmval>"); + out.println("\t\t\t<idval>"+getTrNameById(x, 0)+"</idval>");
+                        out.println("\t\t</transval>");
+                        out.println("\t\t<transval>");
+ out.println("\t\t\t<fsmval>"+listaFsm.get(1).getId()+"</fsmval>"); + out.println("\t\t\t<idval>"+getTrNameById(y, 1)+"</idval>");
+                        out.println("\t\t</transval>");
+                        if(relazioniTransizioni[x][y]==Relazione.M_EX)
+                            out.println("\t\t<type>mutex</type>");
+ else if(relazioniTransizioni[x][y]==Relazione.SINCRONA)
+                            out.println("\t\t<type>sync</type>");
+                        out.println("\t</relation>");
+                    }
+                }
+            }
+            out.println("</simulation>");
+            out.close();
+    }
+
+    private String getTrNameById(int id, int index)
+    {
+        Fsm fsm=listaFsm.get(index);
+        Vector<Transizione> tr=fsm.getTransizioni();
+        String name="";
+        for(int i=0; i<tr.size(); i++)
+        {
+            int p=tr.get(i).getId();
+            if(p==id)
+                name=tr.get(i).getNome();
+        }
+        return name;
+    }

     public String ToString()
     {
=======================================
--- /trunk/cooperativefsm/src/cooperativefsm/StatoCorrente.java Thu Oct 15 07:02:36 2009 +++ /trunk/cooperativefsm/src/cooperativefsm/StatoCorrente.java Thu Oct 29 09:14:04 2009
@@ -32,5 +32,15 @@
         //sCorrenteFsm2 = new Stato(corrente2.getId());
         sCorrenteFsm2 = corrente2;
     }
+
+    public Stato getStato(int s)
+    {
+        Stato p = null;
+        if(s==0)
+            p=sCorrenteFsm1;
+        if(s==1)
+            p=sCorrenteFsm2;
+        return p;
+    }
 }


Other related posts:

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