// A G E N T // . . . // WhoWhereEmail.java // (c) Anind Dey ... 1996 // **************************************************************************** package cyberdesk.acton.service; import java.net.*; import cyberdesk.cameo.*; import cyberdesk.types.Name; // **************************************************************************** public class WhoWhereEmail extends ServiceApplet { protected CameoInterface[] initInterfaces() { CameoInterface[] interfaces = null; try { CameoProperty[] properties = new CameoProperty[ 1 ]; properties[ 0 ] = new CameoProperty( "LookupEmailAddressFor", Class.forName( "cyberdesk.types.Name" ), "Lookup person's email address in the WhoWhere listings" ); interfaces = new CameoInterface[ 1 ]; interfaces[ 0 ] = new CameoInterface( "method", properties ); } catch ( ClassNotFoundException e ) { System.out.println( "WhoWhereEmail: class Name not found" ); } return interfaces; } public void manipulate( CameoMessage msg ) { if ( msg.getField( msg.PROPERTY ).equals( "LookupEmailAddressFor" ) ) { try { String name = ( (Name)msg.getField( msg.DATA ) ).getName(); name = spaces2pluses(name); String query = new String("name=" + name + "&match=inexact"); URL search = new URL(new String("http://query1.whowhere.com/jwz/name.wsrch?" + query)); getAppletContext().showDocument( search, "_whowhere" ); } catch ( MalformedURLException e ) { System.out.println( "WhoWhereEmail: MalformedURLException - " + e ); } } } /** * This private method takes a string and replaces all spaces with "+"'s. * * @return string with spaces replaced by pluses * @param s incoming string */ public String spaces2pluses(String s) { StringBuffer sb = new StringBuffer(""); for (int i = 0; i < s.length(); i++) { if (s.charAt(i)==' ') { sb.append('+'); } else if (s.charAt(i) == '&') { sb.append("%26"); } else { sb.append(s.charAt(i)); } } return sb.toString(); } } // ****************************************************************************Return to the CyberDesk sample code page.