community PrimeChecker; schema { } role Checker { local checker java:beans.PrimeChecker; when (Client c: checknum(string sn)){ concurrency 10; converse(sn){ finish((int) checker.isPrime(sn)); conclude; when (self: raise("java.lang.reflect.InvocationTargetException", string message)) { conclude; } } } } role Client { local client java:beans.Client; when( self: check(string*list, int wait)) { enum sn: list do { check(sn); client.sleep(wait); } } when( self: check(string sn)){ converse(sn){ client.markStart(sn); checknum(sn) -> 4; when (Checker ch: finish(int result)){ client.printResult(sn, result); conclude; } when (self: fail()) { client.printResult(sn, 0); } } } }