// // File: client.java // import org.omg.CORBA.*; import java.io.*; import Fortune.*; import Fortune.FactoryPackage.*; // // Class: client // public class client { public static void main(String args[]) { try { // Init ORB ORB orb = ORB.init(args, new java.util.Properties()); // Obtain externalized Factory object reference String ref = null; String refFile = "factory.ior"; BufferedReader ior = new BufferedReader( new InputStreamReader( new FileInputStream( refFile))); ref = ior.readLine(); ior.close(); org.omg.CORBA.Object obj = orb.string_to_object(ref); if(obj == null) throw new RuntimeException(); // Narrow object reference Factory f = FactoryHelper.narrow(obj); if(f == null) throw new RuntimeException(); short month = 0; short done = 0; System.out.println("Enter month value (1 to 12" + ", 0 to quit)"); // Wrap standard input BufferedReader in = new BufferedReader( new InputStreamReader( System.in)); // Loop while (done == 0) { System.out.print("Month: "); month = Short.parseShort(in.readLine().trim()); if(month != 0) { // Get fortune server Teller t = f.getFortune(month); if(t == null) throw new RuntimeException(); // Display results System.out.println("Fortune for " + t.getMessage() ); System.out.println("Lucky # is: " + t.getLuckyNumber() ); } else { done = 1; } } } // Check for error conditions catch(outOfBounds ex) { System.err.println("Month was out of bounds"); } catch(SystemException ex) { System.err.println("Unexpected error '" + ex.getMessage() + "'"); } catch (NumberFormatException ex) { System.out.println("Invalid Number: " + ex); } catch(IOException ex) { System.err.println("Can't read from ´" + ex.getMessage() + "'"); } } } //End of File