import java.util.*; /** * Java Messenger Server v1.04B * * @author Jerediah Fevold * @version 6 June 2007 */ public class Server { Map buddyMap; TreeSet buddySet; /** * Constructor for objects of class Server */ public Server() { buddyMap = new TreeMap(); buddySet = new TreeSet(); } public int addUser(String name, String password) { if ( name.length() < 4 || name.length() > 10 ) { return 1; } if ( password.length() < 2 || password.length() > 10 ) { return 2; } if ( buddyMap.containsKey(name.toLowerCase()) ) { return 3; } buddyMap.put(name, password); return 0; } public int login(String name, String password) { MsgUser buddy = new MsgUser(Server.this, name, password); if ( !buddyMap.containsKey(name.toLowerCase()) ) { return 1; } if ( !buddyMap.get(name.toLowerCase()).equals(password) ) { return 2; } if ( buddySet.contains(buddy)) { return 3; } buddySet.add(buddy); Iterator it = buddySet.iterator(); while ( it.hasNext() ) { MsgUser user = (MsgUser)(it.next()); Iterator it1 = buddySet.iterator(); while ( it1.hasNext() ) { MsgUser user2 = (MsgUser)(it1.next()); if ( !user.buddySet.contains(user2)) user.addBuddy(user2); } } buddy.openDialog(buddySet); Iterator it2 = buddySet.iterator(); while ( it2.hasNext() ) { MsgUser user3 = (MsgUser)it2.next(); Iterator it3 = user3.buddySet.iterator(); while ( it3.hasNext() ) { MsgUser user4 = (MsgUser)it3.next(); System.out.println( (user4.toString()) ); } } return 0; //add all previously logged in users to buddy lists of each user in set } public void logout(MsgUser u) { buddySet.remove(u); Iterator it = buddySet.iterator(); while( it.hasNext() ) { MsgUser user = (MsgUser)it.next(); user.removeBuddy(u); } } } import java.util.*; /** * MsgUser 1.4A * * @author Jerediah Fevold * @version 6 June 2007 */ public class MsgUser implements Comparable { Server userServer; String userName; String userPassword; TreeSet buddySet; MsgWindow myWindow; /** * Constructor for objects of class MsgUser */ public MsgUser(Server server, String name, String password) { buddySet = new TreeSet(); userServer = server; userName = name; userPassword = password; } public String toString() { return userName; } public String getPassword() { return userPassword; } public boolean equals(Object other) { if( userName.toLowerCase().equals(other.toString().toLowerCase()) ) return true; return false; } public int compareTo(Object other) { return other.toString().compareToIgnoreCase(userName); } public void openDialog(Set buddies) { myWindow = new MsgWindow(MsgUser.this, buddies); } public void addBuddy(MsgUser u) { buddySet.add(u); } public void removeBuddy(MsgUser u) { buddySet.remove(u); } public void receiveMessage(String text) { myWindow.showMessage(text); } public void quit() { userServer.logout(MsgUser.this); } }