products/sources/formale Sprachen/VDM/VDMPP/BuslinesWithDBPP/src/gui image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: BuslinesControl.java   Sprache: JAVA

Original von: VDM©

package gui;

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;

import org.overture.interpreter.debug.RemoteInterpreter;
import org.overture.interpreter.values.Value;



public class BuslinesControl implements IBuslinesControl {

 BlockingQueue<String> commandQueue = new LinkedBlockingQueue<String>();
 RemoteInterpreter interpreter;
 public BuslinesControl(RemoteInterpreter intrprtr) {
  interpreter = intrprtr; 
  Controller.buslinesControl = this;  
 }
 
 public void init() {
  try {
   execute("create w := new World()");
   execute("w.Run()");
  } catch (Exception e) {
   e.printStackTrace();
  } 
 }
 
 @Override
 public void IncreaseInflow() {
  try {
   commandQueue.add("w.env.IncreaseInflow()"); 
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 @Override
 public void DecreaseInflow() {
  try {
   commandQueue.add("w.env.DecreaseInflow()");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 @Override
 public void GfxDone() {
  try {
   commandQueue.add("w.env.step()");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 public void NewCityPlan() {
  try {
   execute("w.env.city.newCity()");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 @Override
 public void AddWaypoint(String wp) {
  try {
   execute("w.addWaypoint(" + wp + ")");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 @Override
 public void AddBusstop(String wp) {
  try {
   if(!wp.equalsIgnoreCase(""))
    execute("w.env.city.addBusstop(" + wp + ")");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 @Override
 public void AddRoad(String wp1, String wp2, String road, int length, boolean highspeed) {
  try {
   execute("w.addRoad(" + wp1 + ", " + wp2 + ", " + road + ", " + length + ", " + highspeed + ")");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 @Override
 public void AddBus(String stm) {
  try {
   execute("w.addBus("+ stm + ")");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 public void StartSimulation() {
  try {
   try {
    execute("w.StartSimulation()");
   } catch (Exception e) {
    e.printStackTrace();
   }

   Thread commandRunner = new Thread(new Runnable(){
     public void run(){
     String cmd = null;
     try {

      while(true){
       cmd = commandQueue.take();
       execute(cmd);
      }
     } catch (Exception e) {
      e.printStackTrace();
     }
     }
     
   });
   
   commandRunner.start();
  } catch (Exception e) {
   e.printStackTrace();
  }  
 }
 
 private Value execute(String arguments) throws Exception
 {
  String cmd = arguments;
  if (cmd.toLowerCase().startsWith("create"))
  {
   cmd = cmd.substring(cmd.indexOf(" "));
   cmd = cmd.trim();
   String name = cmd.substring(0, cmd.indexOf(" "));
   String exp = cmd.substring(cmd.indexOf(":=") + 2);
   System.out.println("CREATE: var: " + name + " exp: " + exp);
   interpreter.create(name, exp);
   return null;
  } else if (cmd.toLowerCase().startsWith("debug")||cmd.toLowerCase().startsWith("print"))
  {
   cmd = /*"p" +*/ cmd.substring(cmd.indexOf(" "));

   cmd = cmd.trim();
  }

  try{
   System.out.println("Calling VDMJ with: "+cmd);
   Value result = interpreter.valueExecute(cmd);
   return result; 
  }catch(Exception e)
  {
   throw e;
  }
 }
}

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤





Download des
Quellennavigators
Download des
sprechenden Kalenders

in der Quellcodebibliothek suchen




Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.


Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff