From b30213f1fd4d60c3a2d78e7ea081a50c3fc3332d Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Wed, 16 Jul 2008 12:49:26 +0000
Subject: [PATCH] automata files

---
 src/automata/Automata.java   | 133 +++++++++++++++++++++++++++++++++++
 src/automata/State.java      |  97 +++++++++++++++++++++++++
 src/automata/Transition.java |  71 +++++++++++++++++++
 3 files changed, 301 insertions(+)
 create mode 100755 src/automata/Automata.java
 create mode 100755 src/automata/State.java
 create mode 100755 src/automata/Transition.java

diff --git a/src/automata/Automata.java b/src/automata/Automata.java
new file mode 100755
index 0000000000..e2cb5e6ac3
--- /dev/null
+++ b/src/automata/Automata.java
@@ -0,0 +1,133 @@
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+
+ludovic.apvrille AT enst.fr
+
+This software is a computer program whose purpose is to allow the 
+edition of TURTLE analysis, design and deployment diagrams, to 
+allow the generation of RT-LOTOS or Java code from this diagram, 
+and at last to allow the analysis of formal validation traces 
+obtained from external tools, e.g. RTL from LAAS-CNRS and CADP 
+from INRIA Rhone-Alpes.
+
+This software is governed by the CeCILL  license under French law and
+abiding by the rules of distribution of free software.  You can  use, 
+modify and/ or redistribute the software under the terms of the CeCILL
+license as circulated by CEA, CNRS and INRIA at the following URL
+"http://www.cecill.info". 
+
+As a counterpart to the access to the source code and  rights to copy,
+modify and redistribute granted by the license, users are provided only
+with a limited warranty  and the software's author,  the holder of the
+economic rights,  and the successive licensors  have only  limited
+liability. 
+
+In this respect, the user's attention is drawn to the risks associated
+with loading,  using,  modifying and/or developing or reproducing the
+software by the user in light of its specific status of free software,
+that may mean  that it is complicated to manipulate,  and  that  also
+therefore means  that it is reserved for developers  and  experienced
+professionals having in-depth computer knowledge. Users are therefore
+encouraged to load and test the software's suitability as regards their
+requirements in conditions enabling the security of their systems and/or 
+data to be ensured and,  more generally, to use and operate it in the 
+same conditions as regards security. 
+
+The fact that you are presently reading this means that you have had
+knowledge of the CeCILL license and that you accept its terms.
+
+/**
+ * Class Automata
+ * Creation: 23/03/2006
+ * @version 1.0 23/03/2006
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package automata;
+
+import java.util.*;
+
+
+public class Automata {
+    private State initState;
+    private LinkedList states;
+    private String name;
+ 
+    public Automata() {
+         states = new LinkedList();
+         initState = new State("0");
+         states.add(initState);
+    }
+    
+    public Automata(String init) {
+         states = new LinkedList();
+         initState = new State(init);
+         states.add(initState);
+    }
+    
+    public void setName(String _name) {
+        name = _name;
+    }
+    
+    public String getName() {
+        return name;
+    }
+    
+    public State getInitState() {
+        return initState;
+    }
+    
+    public State getState(int index) {
+        return (State)(states.get(index));
+    }
+    
+    public void addState(State s) {
+        states.add(s);
+    }
+    
+    public State newState() {
+        State s = new State("" + nbOfStates());
+        addState(s);
+        return s;
+    }
+    
+    public int nbOfStates() {
+        return states.size();
+    }
+    
+    public LinkedList getStates() {
+        return states;
+    }
+    
+    public int nbOfTransitions() {
+        int nb = 0;
+        ListIterator iterator = states.listIterator();
+        while(iterator.hasNext()) {
+            nb+= ((State)iterator.next()).nbOfTransitions();
+        }
+        return nb;
+    }
+    
+    public String toAUT() {
+        StringBuffer sb = new StringBuffer();
+        sb.append("des(" + initState.getName() + "," + nbOfTransitions() + "," + nbOfStates() + ")\n");
+        ListIterator iterator = states.listIterator();
+        while(iterator.hasNext()) {
+            sb.append(((State)iterator.next()).toAUT());
+        }
+        return new String(sb);
+    }
+    
+    public void renameStates() {
+        State s;
+        int cpt = 0;
+        ListIterator iterator = states.listIterator();
+        while(iterator.hasNext()) {
+            s = (State)(iterator.next());
+            s.setName(""+cpt);
+            cpt ++;
+        }
+    }
+    
+ 
+}
\ No newline at end of file
diff --git a/src/automata/State.java b/src/automata/State.java
new file mode 100755
index 0000000000..dfbb6ef6a1
--- /dev/null
+++ b/src/automata/State.java
@@ -0,0 +1,97 @@
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+
+ludovic.apvrille AT enst.fr
+
+This software is a computer program whose purpose is to allow the 
+edition of TURTLE analysis, design and deployment diagrams, to 
+allow the generation of RT-LOTOS or Java code from this diagram, 
+and at last to allow the analysis of formal validation traces 
+obtained from external tools, e.g. RTL from LAAS-CNRS and CADP 
+from INRIA Rhone-Alpes.
+
+This software is governed by the CeCILL  license under French law and
+abiding by the rules of distribution of free software.  You can  use, 
+modify and/ or redistribute the software under the terms of the CeCILL
+license as circulated by CEA, CNRS and INRIA at the following URL
+"http://www.cecill.info". 
+
+As a counterpart to the access to the source code and  rights to copy,
+modify and redistribute granted by the license, users are provided only
+with a limited warranty  and the software's author,  the holder of the
+economic rights,  and the successive licensors  have only  limited
+liability. 
+
+In this respect, the user's attention is drawn to the risks associated
+with loading,  using,  modifying and/or developing or reproducing the
+software by the user in light of its specific status of free software,
+that may mean  that it is complicated to manipulate,  and  that  also
+therefore means  that it is reserved for developers  and  experienced
+professionals having in-depth computer knowledge. Users are therefore
+encouraged to load and test the software's suitability as regards their
+requirements in conditions enabling the security of their systems and/or 
+data to be ensured and,  more generally, to use and operate it in the 
+same conditions as regards security. 
+
+The fact that you are presently reading this means that you have had
+knowledge of the CeCILL license and that you accept its terms.
+
+/**
+ * Class State
+ * Creation: 23/03/2006
+ * @version 1.0 23/03/2006
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package automata;
+
+import java.util.*;
+
+
+public class State {
+    private String name;
+    private LinkedList transitions;
+    
+    public State(String _name) {
+         transitions = new LinkedList();
+         name = _name;
+    }
+    
+    public int nbOfTransitions() {
+        return transitions.size();
+    }
+    
+    public LinkedList getTransitions() {
+        return transitions;
+    }
+    
+    public Transition getTransition(int index) {
+        return (Transition)(transitions.get(index));
+    }
+    
+    public String getName() {
+        return name;
+    }
+    
+    public void setName(String _name) {
+        name = _name;
+    }
+    
+    public void addTransition(Transition t) {
+        //System.out.println("Adding transition to state " + getName() + " transition=" + t.getValue() + " to " + t.getNextState().getName());
+        transitions.add(t);
+    }
+    
+    public String toAUT() {
+        StringBuffer sb = new StringBuffer("");
+        Transition tr;
+        
+        ListIterator iterator = transitions.listIterator();
+        while(iterator.hasNext()) {
+            tr = (Transition)(iterator.next());
+            sb.append("(" + name + ", \"" + tr.getValue() + "\", " + tr.getNextState().getName() + ")\n");
+        }
+        return new String(sb);
+    }
+    
+}
\ No newline at end of file
diff --git a/src/automata/Transition.java b/src/automata/Transition.java
new file mode 100755
index 0000000000..8b77d5b928
--- /dev/null
+++ b/src/automata/Transition.java
@@ -0,0 +1,71 @@
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+
+ludovic.apvrille AT enst.fr
+
+This software is a computer program whose purpose is to allow the 
+edition of TURTLE analysis, design and deployment diagrams, to 
+allow the generation of RT-LOTOS or Java code from this diagram, 
+and at last to allow the analysis of formal validation traces 
+obtained from external tools, e.g. RTL from LAAS-CNRS and CADP 
+from INRIA Rhone-Alpes.
+
+This software is governed by the CeCILL  license under French law and
+abiding by the rules of distribution of free software.  You can  use, 
+modify and/ or redistribute the software under the terms of the CeCILL
+license as circulated by CEA, CNRS and INRIA at the following URL
+"http://www.cecill.info". 
+
+As a counterpart to the access to the source code and  rights to copy,
+modify and redistribute granted by the license, users are provided only
+with a limited warranty  and the software's author,  the holder of the
+economic rights,  and the successive licensors  have only  limited
+liability. 
+
+In this respect, the user's attention is drawn to the risks associated
+with loading,  using,  modifying and/or developing or reproducing the
+software by the user in light of its specific status of free software,
+that may mean  that it is complicated to manipulate,  and  that  also
+therefore means  that it is reserved for developers  and  experienced
+professionals having in-depth computer knowledge. Users are therefore
+encouraged to load and test the software's suitability as regards their
+requirements in conditions enabling the security of their systems and/or 
+data to be ensured and,  more generally, to use and operate it in the 
+same conditions as regards security. 
+
+The fact that you are presently reading this means that you have had
+knowledge of the CeCILL license and that you accept its terms.
+
+/**
+ * Class Transition
+ * Creation: 23/03/2006
+ * @version 1.0 23/03/2006
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package automata;
+
+
+public class Transition {
+    private String value;
+    private State nextState;
+    
+
+    public Transition(String _value, State _nextState) {
+         value = _value;
+         nextState = _nextState;
+    }
+    
+    public String getValue() {
+        return value;
+    }
+    
+    public State getNextState() {
+        return nextState;
+    }
+    
+    public void setNextState(State _nextState) {
+        nextState = _nextState;
+    }
+    
+}
\ No newline at end of file
-- 
GitLab