public class Simulation {
  public static void main(String[] a) {
    List<Event> inputList = takeInputTrajectory();
    int index = 0;
    Model model = ...
    Event internalModelEvent = new Event(new TimeMoment(Double.POSITIVE_INFINITY, model, EventType.INTERNAL));
    TimeMoment now;
    while (true) {
      //grab event from top of pqueue
      //now = event.getTime();
      //call event.process(), which produces another event
      //schedule that on pqueue




      Event externalEvent = inputList.get(index++);
      int comp = externalEvent.compareTo(internalModelEvent);
      if (comp < 0) {
	      //external event
      } else if (comp > 0) {
	System.out.println(model.lambda());
	model.deltaInt();
      } else {
	System.out.println(model.lambda());
	model.deltaCon(
      }
    } 
  }

  private static List<Event> takeInputTrajectory() {
  }
}
