module addressbook; import java.util.Hashtable; import java.util.Enumeration; // Address book implementation taken from CORBA examples // in Sun's Java CORBA Tutorial. // // // AddressBook // // This behavior is responsible for implementing // three message handlers // // * String getEmail ( String email ); // * String getName ( String name ); // * boolean addUser ( String name, String email ); // // behavior AddressBook { private Hashtable name2email; AddressBook() { // Create a new hashtable to store name & email name2email = new Hashtable(); } // Get the name of this email user String getName( String email ) { if (name2email.contains(email)) { // Begin search for that name for (Enumeration e = name2email.keys(); e.hasMoreElements();) { String name = (String) e.nextElement(); String e_mail = (String) name2email.get(name); // Match on email ? if (email.compareTo(e_mail) == 0) { return name; } } } return new String("Unknown user"); } // Get the email of this person String getEmail ( String name ) { // If user exists if (name2email.containsKey(name)) { // Return email address return (String) name2email.get(name); } // User doesn't exist return new String("Unknown user"); } // Add a new user to the system, returns success boolean addUser ( String name, String email ) { // Is the user already listed if (name2email.containsKey( name ) || name2email.contains( email ) ) { // If so, return false return false; } // Add to our hash table name2email.put (name, email); return true; } void act(String args[]){ if (args.length != 2) { standardOutput<-println( "Usage: java addressbook.AddressBook " ); return; } bind( args[0], args[1] ); } }