/* --- How to compile prompt> setup_course TDA600 prompt> jifc -classpath $JIF/tests ExamRoom.jif prompt> --- How to run prompt> jif -classpath $JIF/tests ExamRoom Starting exam exam finished done. */ import java.io.PrintStream; import jif.runtime.Runtime; class ExamRoom authority (Alice,Bob,Examiner) { /* Alice declaration */ /* Bob declaration */ /* Exam declaration */ public final principal{} p; ExamRoom(principal{} p) { this.p = p; } public void startExam{}() { /* call runExam() */ } public static ExamRoom room; public static final void main{}(principal{} p, String args[]) throws (SecurityException, IllegalArgumentException) { Runtime[p] runtime = Runtime[p].getRuntime(); if (runtime == null) return; PrintStream[{}] output = runtime.stdout(new label{}); if (output == null) return; output.println("Starting exam"); ExamRoom rm = new ExamRoom(p); ExamRoom.room = rm; rm.startExam(); output.println("exam finished"); /* tell results of Alice */ /* tell results of Bob */ output.println("done."); } }