package org.jacorb.test.orb; import org.jacorb.test.CallbackServerPOA; import org.jacorb.test.EmptyException; import org.jacorb.test.NonEmptyException; import org.omg.CORBA.CharHolder; import org.omg.CORBA.IntHolder; public class CallbackServerImpl extends CallbackServerPOA { public void ping() { return; } public void delayed_ping(int delay) { delay( delay ); return; } public void pass_in_char(char x, int delay) { delay( delay ); } public char return_char(short unicode_number, int delay) { delay( delay ); return ( char ) unicode_number; } public int operation(CharHolder p1, IntHolder p2, boolean p3, int delay) { delay( delay ); p1.value = Character.toUpperCase(p1.value); if ( p3 ) p2.value = 1234; else p2.value = 4321; return p2.value; } private synchronized void delay( long time ) { try { wait( time ); } catch( InterruptedException e ) { throw new RuntimeException( "delay interrupted" ); } } public void ex_1( boolean do_it, int delay ) throws EmptyException { delay( delay ); if ( do_it ) throw new EmptyException(); else return; } public int ex_2( IntHolder p, boolean do_it, int delay ) throws NonEmptyException { delay( delay ); if ( do_it ) throw new NonEmptyException( "just do it", p.value, "xxx" ); else return p.value; } public void ex_3( boolean non_empty, int delay ) throws NonEmptyException, EmptyException { delay( delay ); if ( non_empty ) throw new NonEmptyException( 4321, "zzz" ); else throw new EmptyException( "reason" ); } }