diff options
author | Emil Ivov <emcho@jitsi.org> | 2009-04-29 11:03:14 +0000 |
---|---|---|
committer | Emil Ivov <emcho@jitsi.org> | 2009-04-29 11:03:14 +0000 |
commit | 896bf47772ebd1f6209625a5de0bf699ac6b1776 (patch) | |
tree | 5c20a482ae6be6a78b9727ffcc648a897111f066 | |
parent | d183350ccf3947339584dae05fad9c1089ba5bd3 (diff) | |
download | jitsi-896bf47772ebd1f6209625a5de0bf699ac6b1776.zip jitsi-896bf47772ebd1f6209625a5de0bf699ac6b1776.tar.gz jitsi-896bf47772ebd1f6209625a5de0bf699ac6b1776.tar.bz2 |
Fixes raw type warnings (Part of issue #637).
16 files changed, 304 insertions, 384 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/icq/ContactGroupIcqImpl.java b/src/net/java/sip/communicator/impl/protocol/icq/ContactGroupIcqImpl.java index f8d2db4..a2b38cc 100644 --- a/src/net/java/sip/communicator/impl/protocol/icq/ContactGroupIcqImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/icq/ContactGroupIcqImpl.java @@ -33,8 +33,8 @@ public class ContactGroupIcqImpl * strings in the left column because screen names in AIM/ICQ are not case * sensitive. */ - private Map<String, ContactIcqImpl> buddies - = new Hashtable<String, ContactIcqImpl>(); + private Map<String, Contact> buddies + = new Hashtable<String, Contact>(); private boolean isResolved = false; @@ -47,8 +47,8 @@ public class ContactGroupIcqImpl * a list that would always remain empty. We only use it so that we're able * to extract empty iterators */ - private LinkedHashSet<ContactGroupIcqImpl> dummyGroupsList - = new LinkedHashSet<ContactGroupIcqImpl>(); + private LinkedHashSet<ContactGroup> dummyGroupsList + = new LinkedHashSet<ContactGroup>(); /** * A variable that we use as a means of detecting changes in the name @@ -164,7 +164,7 @@ public class ContactGroupIcqImpl * <tt>ContactGroup</tt>. In case the group doesn't contain any * memebers it will return an empty iterator. */ - public Iterator contacts() + public Iterator<Contact> contacts() { return buddies.values().iterator(); } @@ -228,7 +228,7 @@ public class ContactGroupIcqImpl * * @return an empty iterator */ - public Iterator subgroups() + public Iterator<ContactGroup> subgroups() { return dummyGroupsList.iterator(); } @@ -313,10 +313,10 @@ public class ContactGroupIcqImpl buff.append(getGroupName()); buff.append(", childContacts="+countContacts()+":["); - Iterator contacts = contacts(); + Iterator<Contact> contacts = contacts(); while (contacts.hasNext()) { - ContactIcqImpl contact = (ContactIcqImpl) contacts.next(); + Contact contact = contacts.next(); buff.append(contact.toString()); if(contacts.hasNext()) buff.append(", "); @@ -335,7 +335,7 @@ public class ContactGroupIcqImpl */ ContactIcqImpl findContact(Buddy joustSimBuddy) { - Iterator contacts = contacts(); + Iterator<Contact> contacts = contacts(); while (contacts.hasNext()) { ContactIcqImpl item = (ContactIcqImpl) contacts.next(); @@ -354,7 +354,7 @@ public class ContactGroupIcqImpl */ int findContactIndex(Contact contact) { - Iterator contacts = contacts(); + Iterator<Contact> contacts = contacts(); int i = 0; while (contacts.hasNext()) { @@ -382,7 +382,7 @@ public class ContactGroupIcqImpl return null; String lcScreenName = screenName.toLowerCase(); - return buddies.get(lcScreenName); + return (ContactIcqImpl)buddies.get(lcScreenName); } /** diff --git a/src/net/java/sip/communicator/impl/protocol/icq/RootContactGroupIcqImpl.java b/src/net/java/sip/communicator/impl/protocol/icq/RootContactGroupIcqImpl.java index 3abbc32..2f35cee 100644 --- a/src/net/java/sip/communicator/impl/protocol/icq/RootContactGroupIcqImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/icq/RootContactGroupIcqImpl.java @@ -19,15 +19,13 @@ public class RootContactGroupIcqImpl extends AbstractContactGroupIcqImpl { private String ROOT_CONTACT_GROUP_NAME = "ContactListRoot"; - private List<ContactGroupIcqImpl> subGroups - = new LinkedList<ContactGroupIcqImpl>(); + private List<ContactGroup> subGroups = new LinkedList<ContactGroup>(); private boolean isResolved = false; /** * An empty list that we use when returning an iterator. */ - private List<ContactIcqImpl> dummyContacts - = new LinkedList<ContactIcqImpl>(); + private List<Contact> dummyContacts = new LinkedList<Contact>(); private ProtocolProviderServiceIcqImpl ownerProvider = null; @@ -159,10 +157,10 @@ public class RootContactGroupIcqImpl */ public ContactGroup getGroup(String groupName) { - Iterator<ContactGroupIcqImpl> subgroups = subgroups(); + Iterator<ContactGroup> subgroups = subgroups(); while (subgroups.hasNext()) { - ContactGroupIcqImpl grp = subgroups.next(); + ContactGroup grp = subgroups.next(); if (grp.getGroupName().equals(groupName)) return grp; @@ -191,7 +189,7 @@ public class RootContactGroupIcqImpl * @return a java.util.Iterator over the <tt>ContactGroup</tt> * children of this group (i.e. subgroups). */ - public Iterator subgroups() + public Iterator<ContactGroup> subgroups() { return subGroups.iterator(); } @@ -213,7 +211,7 @@ public class RootContactGroupIcqImpl * @return a java.util.Iterator over all contacts inside this * <tt>ContactGroup</tt> */ - public Iterator contacts() + public Iterator<Contact> contacts() { return dummyContacts.iterator(); } @@ -229,10 +227,10 @@ public class RootContactGroupIcqImpl StringBuffer buff = new StringBuffer(getGroupName()); buff.append(".subGroups="+countSubgroups()+":\n"); - Iterator<ContactGroupIcqImpl> subGroups = subgroups(); + Iterator<ContactGroup> subGroups = subgroups(); while (subGroups.hasNext()) { - ContactGroup group = (ContactGroup) subGroups.next(); + ContactGroup group = subGroups.next(); buff.append(group.toString()); if(subGroups.hasNext()) buff.append("\n"); diff --git a/src/net/java/sip/communicator/impl/protocol/icq/ServerStoredContactListIcqImpl.java b/src/net/java/sip/communicator/impl/protocol/icq/ServerStoredContactListIcqImpl.java index fe161e3..5f41f9f 100644 --- a/src/net/java/sip/communicator/impl/protocol/icq/ServerStoredContactListIcqImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/icq/ServerStoredContactListIcqImpl.java @@ -316,11 +316,6 @@ public class ServerStoredContactListIcqImpl contact, parentGroup, SubscriptionEvent.SUBSCRIPTION_REMOVED); } - private void fireContactsReordered( ContactGroupIcqImpl parentGroup) - { - /** @todo implement fireContactsReordered() */ - } - /** * Retrns a reference to the provider that created us. * @return a reference to a ProtocolProviderServiceIcqImpl instance. @@ -339,7 +334,7 @@ public class ServerStoredContactListIcqImpl */ public int findContactGroupIndex(Group joustSimGroup) { - Iterator<Group> contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); int index = 0; for (; contactGroups.hasNext(); index++) @@ -364,14 +359,14 @@ public class ServerStoredContactListIcqImpl */ public ContactGroupIcqImpl findContactGroup(String name) { - Iterator<ContactGroupIcqImpl> contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); while(contactGroups.hasNext()) { - ContactGroupIcqImpl contactGroup = contactGroups.next(); + ContactGroup contactGroup = contactGroups.next(); if (contactGroup.getGroupName().equals(name)) - return contactGroup; + return (ContactGroupIcqImpl)contactGroup; } return null; @@ -386,11 +381,12 @@ public class ServerStoredContactListIcqImpl */ public ContactGroupIcqImpl findContactGroup(Group joustSimGroup) { - Iterator<ContactGroupIcqImpl> contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); while(contactGroups.hasNext()) { - ContactGroupIcqImpl contactGroup = contactGroups.next(); + ContactGroupIcqImpl contactGroup + = (ContactGroupIcqImpl)contactGroups.next(); if (joustSimGroup == contactGroup.getJoustSimSourceGroup()) return contactGroup; @@ -409,12 +405,13 @@ public class ServerStoredContactListIcqImpl */ public ContactIcqImpl findContactByScreenName(String screenName) { - Iterator<ContactGroupIcqImpl> contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); ContactIcqImpl result = null; while(contactGroups.hasNext()) { - ContactGroupIcqImpl contactGroup = contactGroups.next(); + ContactGroupIcqImpl contactGroup + = (ContactGroupIcqImpl)contactGroups.next(); result = contactGroup.findContact(screenName); @@ -435,13 +432,14 @@ public class ServerStoredContactListIcqImpl */ public ContactIcqImpl findContactByJoustSimBuddy(Buddy buddy) { - Iterator<ContactGroupIcqImpl> contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); String screenName = buddy.getScreenname().getFormatted(); ContactIcqImpl result = null; while(contactGroups.hasNext()) { - ContactGroupIcqImpl contactGroup = contactGroups.next(); + ContactGroupIcqImpl contactGroup + = (ContactGroupIcqImpl)contactGroups.next(); result = contactGroup.findContact(screenName); @@ -464,11 +462,12 @@ public class ServerStoredContactListIcqImpl */ public ContactGroupIcqImpl findContactGroup(ContactIcqImpl child) { - Iterator<ContactGroupIcqImpl> contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); while(contactGroups.hasNext()) { - ContactGroupIcqImpl contactGroup = contactGroups.next(); + ContactGroupIcqImpl contactGroup + = (ContactGroupIcqImpl)contactGroups.next(); if( contactGroup.findContact(child.getJoustSimBuddy())!= null) return contactGroup; @@ -849,10 +848,10 @@ public class ServerStoredContactListIcqImpl ContactGroupIcqImpl findGroup(Buddy buddy) { - Iterator<ContactGroupIcqImpl> iter = rootGroup.subgroups(); + Iterator<ContactGroup> iter = rootGroup.subgroups(); while (iter.hasNext()) { - ContactGroupIcqImpl elem = iter.next(); + ContactGroupIcqImpl elem = (ContactGroupIcqImpl)iter.next(); if(!elem.isPersistent() || !elem.isResolved()) continue; @@ -913,7 +912,7 @@ public class ServerStoredContactListIcqImpl // if this is not a new group then it must be a unresolved one. // set it to resolved, do the same with its child buddies, fire // the corresponding events and bail out. - List newContacts = new ArrayList(); + List<Contact> newContacts = new ArrayList<Contact>(); List<ContactIcqImpl> deletedContacts = new ArrayList<ContactIcqImpl>(); newGroup.updateGroup((MutableGroup)group, buddies @@ -934,8 +933,7 @@ public class ServerStoredContactListIcqImpl } //fire events for that contacts have been resolved or added - Iterator<ContactIcqImpl> contactsIter - = newGroup.contacts(); + Iterator<Contact> contactsIter = newGroup.contacts(); while(contactsIter.hasNext()) { ContactIcqImpl contact @@ -996,8 +994,11 @@ public class ServerStoredContactListIcqImpl * @param newItems unused * @param buddy the newly added <tt>buddy</tt> */ - public void buddyAdded(BuddyList list, Group joustSimGroup, List oldItems, - List newItems, Buddy buddy) + public void buddyAdded( BuddyList list, + Group joustSimGroup, + List oldItems, + List newItems, + Buddy buddy) { logger.trace("Received buddyAdded " + buddy); //it is possible that the buddy being added is already in our diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/ContactGroupJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/ContactGroupJabberImpl.java index 6d3dc19..747882f 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/ContactGroupJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/ContactGroupJabberImpl.java @@ -26,6 +26,7 @@ import net.java.sip.communicator.service.protocol.*; * source group is changed. * * @author Damian Minkov + * @author Emil Ivov */ public class ContactGroupJabberImpl extends AbstractContactGroupJabberImpl diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/RootContactGroupJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/RootContactGroupJabberImpl.java index 71deb63..635b350 100755 --- a/src/net/java/sip/communicator/impl/protocol/jabber/RootContactGroupJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/RootContactGroupJabberImpl.java @@ -14,6 +14,7 @@ import net.java.sip.communicator.service.protocol.*; * A dummy ContactGroup implementation representing the ContactList root for * Jabber contact lists. * @author Damian Minkov + * @author Emil Ivov */ public class RootContactGroupJabberImpl extends AbstractContactGroupJabberImpl diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/ServerStoredContactListJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/ServerStoredContactListJabberImpl.java index 845707b..89e6692 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/ServerStoredContactListJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/ServerStoredContactListJabberImpl.java @@ -24,6 +24,7 @@ import org.jivesoftware.smackx.packet.*; * corresponding sip-communicator events to all events coming from smack. * * @author Damian Minkov + * @author Emil Ivov */ public class ServerStoredContactListJabberImpl { diff --git a/src/net/java/sip/communicator/impl/protocol/msn/ContactGroupMsnImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/ContactGroupMsnImpl.java index 9053102..795d802 100644 --- a/src/net/java/sip/communicator/impl/protocol/msn/ContactGroupMsnImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/msn/ContactGroupMsnImpl.java @@ -26,6 +26,7 @@ import net.sf.jml.MsnContact; * source group is changed. * * @author Damian Minkov + * @author Emil Ivov */ public class ContactGroupMsnImpl extends AbstractContactGroupMsnImpl @@ -37,8 +38,8 @@ public class ContactGroupMsnImpl * lower case strings in the left column because MSN IDs in XMPP are not * case sensitive. */ - private Map<String, ContactMsnImpl> buddies - = new Hashtable<String, ContactMsnImpl>(); + private Map<String, Contact> buddies + = new Hashtable<String, Contact>(); private boolean isResolved = false; /** @@ -50,8 +51,7 @@ public class ContactGroupMsnImpl * a list that would always remain empty. We only use it so that we're able * to extract empty iterators */ - private List<ContactGroupMsnImpl> dummyGroupsList - = new LinkedList<ContactGroupMsnImpl>(); + private List<ContactGroup> dummyGroupsList = new LinkedList<ContactGroup>(); private ServerStoredContactListMsnImpl ssclCallback = null; @@ -148,7 +148,7 @@ public class ContactGroupMsnImpl * <tt>ContactGroup</tt>. In case the group doesn't contain any * memebers it will return an empty iterator. */ - public Iterator contacts() + public Iterator<Contact> contacts() { return buddies.values().iterator(); } @@ -212,7 +212,7 @@ public class ContactGroupMsnImpl * * @return an empty iterator */ - public Iterator subgroups() + public Iterator<ContactGroup> subgroups() { return dummyGroupsList.iterator(); } @@ -285,10 +285,10 @@ public class ContactGroupMsnImpl buff.append(getGroupName()); buff.append(", childContacts="+countContacts()+":["); - Iterator contacts = contacts(); + Iterator<Contact> contacts = contacts(); while (contacts.hasNext()) { - ContactMsnImpl contact = (ContactMsnImpl) contacts.next(); + Contact contact = contacts.next(); buff.append(contact.toString()); if(contacts.hasNext()) buff.append(", "); @@ -306,14 +306,10 @@ public class ContactGroupMsnImpl */ ContactMsnImpl findContact(String id) { - Iterator contacts = contacts(); - while (contacts.hasNext()) - { - ContactMsnImpl item = (ContactMsnImpl) contacts.next(); - if(item.getAddress().equals(id)) - return item; - } - return null; + if (id == null) + return null; + + return (ContactMsnImpl)buddies.get(id.toLowerCase()); } /** diff --git a/src/net/java/sip/communicator/impl/protocol/msn/EventManager.java b/src/net/java/sip/communicator/impl/protocol/msn/EventManager.java index 7714c92..c4dad52 100644 --- a/src/net/java/sip/communicator/impl/protocol/msn/EventManager.java +++ b/src/net/java/sip/communicator/impl/protocol/msn/EventManager.java @@ -31,18 +31,19 @@ public class EventManager private static final Logger logger = Logger.getLogger(EventManager.class); private BasicMessenger msnMessenger = null; - private Vector listeners = new Vector(); + private Vector<MsnContactListEventListener> listeners + = new Vector<MsnContactListEventListener>(); /** * The provider that is on top of us. */ private ProtocolProviderServiceMsnImpl msnProvider = null; - + /** * Creates the manager * @param msnMessenger BasicMessenger the messenger */ - public EventManager(ProtocolProviderServiceMsnImpl msnProvider, + public EventManager(ProtocolProviderServiceMsnImpl msnProvider, BasicMessenger msnMessenger) { this.msnProvider = msnProvider; @@ -129,15 +130,13 @@ public class EventManager } else if(incoming instanceof IncomingQNG) { - IncomingQNG incomingQNG = (IncomingQNG)incoming; - connected = true; } } private boolean connected = false; private Timer connectionTimer = new Timer(); - + public void sessionTimeout(Session socketSession) throws Exception { connectionTimer.schedule(new TimerTask() @@ -161,11 +160,10 @@ public class EventManager private void fireMessageDelivered(int transactionID) { synchronized(listeners){ - Iterator iter = listeners.iterator(); + Iterator<MsnContactListEventListener> iter = listeners.iterator(); while (iter.hasNext()) { - ((MsnContactListEventListener)iter.next()). - messageDelivered(transactionID); + iter.next().messageDelivered(transactionID); } } } @@ -177,11 +175,10 @@ public class EventManager private void fireMessageDeliveredFailed(int transactionID) { synchronized(listeners){ - Iterator iter = listeners.iterator(); + Iterator<MsnContactListEventListener> iter = listeners.iterator(); while (iter.hasNext()) { - ((MsnContactListEventListener)iter.next()). - messageDeliveredFailed(transactionID); + iter.next().messageDeliveredFailed(transactionID); } } } @@ -193,10 +190,10 @@ public class EventManager private void fireGroupRenamed(MsnGroup group) { synchronized(listeners){ - Iterator iter = listeners.iterator(); + Iterator<MsnContactListEventListener> iter = listeners.iterator(); while (iter.hasNext()) { - ((MsnContactListEventListener)iter.next()).groupRenamed(group); + iter.next().groupRenamed(group); } } } @@ -208,11 +205,10 @@ public class EventManager { synchronized (listeners) { - Iterator iter = listeners.iterator(); + Iterator<MsnContactListEventListener> iter = listeners.iterator(); while (iter.hasNext()) { - ( (MsnContactListEventListener) iter.next()) - .loggingFromOtherLocation(); + iter.next().loggingFromOtherLocation(); } } } diff --git a/src/net/java/sip/communicator/impl/protocol/msn/OperationSetPersistentPresenceMsnImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/OperationSetPersistentPresenceMsnImpl.java index 47f87ee..d5649f9 100644 --- a/src/net/java/sip/communicator/impl/protocol/msn/OperationSetPersistentPresenceMsnImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/msn/OperationSetPersistentPresenceMsnImpl.java @@ -47,27 +47,32 @@ public class OperationSetPersistentPresenceMsnImpl * The list of listeners interested in receiving changes in our local * presence status. */ - private Vector providerPresenceStatusListeners = new Vector(); + private Vector<ProviderPresenceStatusListener> + providerPresenceStatusListeners + = new Vector<ProviderPresenceStatusListener>(); /** * The list of presence status listeners interested in receiving presence * notifications of changes in status of contacts in our contact list. */ - private Vector contactPresenceStatusListeners = new Vector(); + private Vector<ContactPresenceStatusListener> contactPresenceStatusListeners + = new Vector<ContactPresenceStatusListener>(); /** * Sometimes status changes are received before the contact list is inited * here we store such events so we can show them correctly */ - private Hashtable earlyStatusChange = new Hashtable(); - + private Hashtable<String, MsnUserStatus> earlyStatusChange + = new Hashtable<String, MsnUserStatus>(); + private AuthorizationHandler authorizationHandler = null; /** * The array list we use when returning from the getSupportedStatusSet() * method. */ - private static final List<PresenceStatus> supportedPresenceStatusSet = new ArrayList<PresenceStatus>(); + private static final List<PresenceStatus> supportedPresenceStatusSet + = new ArrayList<PresenceStatus>(); static{ supportedPresenceStatusSet.add(MsnStatusEnum.AWAY); supportedPresenceStatusSet.add(MsnStatusEnum.BE_RIGHT_BACK); @@ -84,7 +89,8 @@ public class OperationSetPersistentPresenceMsnImpl * A map containing bindings between SIP Communicator's msn presence status * instances and Msn status codes */ - private static Map scToMsnModesMappings = new Hashtable(); + private static Map<MsnStatusEnum, MsnUserStatus> scToMsnModesMappings + = new Hashtable<MsnStatusEnum, MsnUserStatus>(); static{ scToMsnModesMappings.put(MsnStatusEnum.AWAY, MsnUserStatus.AWAY); @@ -529,7 +535,7 @@ public class OperationSetPersistentPresenceMsnImpl { this.authorizationHandler = handler; } - + /** * Returns the AuthorizationHandler. * @return AuthorizationHandler @@ -692,16 +698,16 @@ public class OperationSetPersistentPresenceMsnImpl + providerPresenceStatusListeners.size() + " evt=" + evt); - Iterator listeners = null; + Iterator<ProviderPresenceStatusListener> listeners = null; synchronized (providerPresenceStatusListeners) { - listeners = new ArrayList(providerPresenceStatusListeners).iterator(); + listeners = new ArrayList<ProviderPresenceStatusListener>( + providerPresenceStatusListeners).iterator(); } while (listeners.hasNext()) { - ProviderPresenceStatusListener listener - = (ProviderPresenceStatusListener) listeners.next(); + ProviderPresenceStatusListener listener = listeners.next(); listener.providerStatusChanged(evt); } @@ -725,16 +731,16 @@ public class OperationSetPersistentPresenceMsnImpl + providerPresenceStatusListeners.size() + " evt=" + evt); - Iterator listeners = null; + Iterator<ProviderPresenceStatusListener> listeners = null; synchronized (providerPresenceStatusListeners) { - listeners = new ArrayList(providerPresenceStatusListeners).iterator(); + listeners = new ArrayList<ProviderPresenceStatusListener>( + providerPresenceStatusListeners).iterator(); } while (listeners.hasNext()) { - ProviderPresenceStatusListener listener = - (ProviderPresenceStatusListener) listeners.next(); + ProviderPresenceStatusListener listener = listeners.next(); listener.providerStatusMessageChanged(evt); } @@ -780,8 +786,8 @@ public class OperationSetPersistentPresenceMsnImpl currentStatus); //send event notifications saying that all our buddies are - //offline. - Iterator rootContactsIter = + //offline. + Iterator rootContactsIter = getServerStoredContactListRoot().contacts(); while(rootContactsIter.hasNext()) { @@ -801,15 +807,15 @@ public class OperationSetPersistentPresenceMsnImpl , contact.getParentContactGroup() , oldContactStatus, MsnStatusEnum.OFFLINE); } - - Iterator groupsIter = - getServerStoredContactListRoot().subgroups(); + + Iterator<ContactGroup> groupsIter + = getServerStoredContactListRoot().subgroups(); while(groupsIter.hasNext()) { ContactGroupMsnImpl group = (ContactGroupMsnImpl)groupsIter.next(); - Iterator contactsIter = group.contacts(); + Iterator<Contact> contactsIter = group.contacts(); while(contactsIter.hasNext()) { @@ -856,16 +862,16 @@ public class OperationSetPersistentPresenceMsnImpl + contactPresenceStatusListeners.size() + " evt=" + evt); - Iterator listeners = null; + Iterator<ContactPresenceStatusListener> listeners = null; synchronized (contactPresenceStatusListeners) { - listeners = new ArrayList(contactPresenceStatusListeners).iterator(); + listeners = new ArrayList<ContactPresenceStatusListener>( + contactPresenceStatusListeners).iterator(); } while (listeners.hasNext()) { - ContactPresenceStatusListener listener - = (ContactPresenceStatusListener) listeners.next(); + ContactPresenceStatusListener listener = listeners.next(); listener.contactPresenceStatusChanged(evt); } @@ -887,12 +893,13 @@ public class OperationSetPersistentPresenceMsnImpl */ void earlyStatusesDispatch() { - Iterator iter = earlyStatusChange.keySet().iterator(); + Iterator<String> iter = earlyStatusChange.keySet().iterator(); while (iter.hasNext()) { String contactEmail = (String)iter.next(); - ContactMsnImpl sourceContact = ssContactList.findContactById(contactEmail); + ContactMsnImpl sourceContact + = ssContactList.findContactById(contactEmail); if (sourceContact == null) { @@ -957,7 +964,7 @@ public class OperationSetPersistentPresenceMsnImpl if (sourceContact == null) { - logger.warn("No source contact found for msncontact=" + contact); + logger.debug("No source contact found for msncontact=" + contact); // maybe list is not inited yet will store till init earlyStatusChange.put(contact.getEmail().getEmailAddress(), diff --git a/src/net/java/sip/communicator/impl/protocol/msn/RootContactGroupMsnImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/RootContactGroupMsnImpl.java index 04444c9..31b20b1 100755 --- a/src/net/java/sip/communicator/impl/protocol/msn/RootContactGroupMsnImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/msn/RootContactGroupMsnImpl.java @@ -14,15 +14,16 @@ import net.java.sip.communicator.service.protocol.*; * A dummy ContactGroup implementation representing the ContactList root for * Msn contact lists. * @author Damian Minkov + * @author Emil Ivov */ public class RootContactGroupMsnImpl extends AbstractContactGroupMsnImpl { private String ROOT_CONTACT_GROUP_NAME = "ContactListRoot"; - private List subGroups = new LinkedList(); + private List<ContactGroup> subGroups = new LinkedList<ContactGroup>(); private boolean isResolved = false; - private List contacts = new LinkedList(); + private List<Contact> contacts = new LinkedList<Contact>(); private ProtocolProviderServiceMsnImpl ownerProvider = null; @@ -107,21 +108,6 @@ public class RootContactGroupMsnImpl } /** - * Removes all contact sub groups and reinsterts them as specified - * by the <tt>newOrder</tt> param. Contact groups not contained in the - * newOrder list are left at the end of this group. - * - * @param newOrder a list containing all contact groups in the order that is - * to be applied. - * - */ - void reorderSubGroups(List newOrder) - { - subGroups.removeAll(newOrder); - subGroups.addAll(0, newOrder); - } - - /** * Returns the number of subgroups contained by this * <tt>RootContactGroupImpl</tt>. * @@ -160,10 +146,10 @@ public class RootContactGroupMsnImpl */ public ContactGroup getGroup(String groupName) { - Iterator subgroups = subgroups(); + Iterator<ContactGroup> subgroups = subgroups(); while (subgroups.hasNext()) { - ContactGroupMsnImpl grp = (ContactGroupMsnImpl) subgroups.next(); + ContactGroup grp = subgroups.next(); if (grp.getGroupName().equals(groupName)) return grp; @@ -179,7 +165,7 @@ public class RootContactGroupMsnImpl * @return a java.util.Iterator over the <tt>ContactGroup</tt> * children of this group (i.e. subgroups). */ - public Iterator subgroups() + public Iterator<ContactGroup> subgroups() { return subGroups.iterator(); } @@ -201,7 +187,7 @@ public class RootContactGroupMsnImpl * @return a java.util.Iterator over all contacts inside this * <tt>ContactGroup</tt> */ - public Iterator contacts() + public Iterator<Contact> contacts() { return contacts.iterator(); } @@ -231,10 +217,10 @@ public class RootContactGroupMsnImpl StringBuffer buff = new StringBuffer(getGroupName()); buff.append(".subGroups=" + countSubgroups() + ":\n"); - Iterator subGroups = subgroups(); + Iterator<ContactGroup> subGroups = subgroups(); while (subGroups.hasNext()) { - ContactGroup group = (ContactGroup) subGroups.next(); + ContactGroup group = subGroups.next(); buff.append(group.toString()); if (subGroups.hasNext()) buff.append("\n"); diff --git a/src/net/java/sip/communicator/impl/protocol/msn/ServerStoredContactListMsnImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/ServerStoredContactListMsnImpl.java index 3fd817b..b2f5be8 100644 --- a/src/net/java/sip/communicator/impl/protocol/msn/ServerStoredContactListMsnImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/msn/ServerStoredContactListMsnImpl.java @@ -23,6 +23,7 @@ import net.sf.jml.message.p2p.*; * corresponding sip-communicator events to all events coming from smack. * * @author Damian Minkov + * @author Emil Ivov */ public class ServerStoredContactListMsnImpl { @@ -254,14 +255,14 @@ public class ServerStoredContactListMsnImpl */ public ContactGroupMsnImpl findContactGroup(String name) { - Iterator<ContactGroupMsnImpl> contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); while(contactGroups.hasNext()) { - ContactGroupMsnImpl contactGroup = contactGroups.next(); + ContactGroup contactGroup = contactGroups.next(); if (contactGroup.getGroupName().equals(name)) - return contactGroup; + return (ContactGroupMsnImpl)contactGroup; } return null; @@ -277,12 +278,13 @@ public class ServerStoredContactListMsnImpl */ public ContactMsnImpl findContactById(String id) { - Iterator<ContactGroupMsnImpl> contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); ContactMsnImpl result = null; while(contactGroups.hasNext()) { - ContactGroupMsnImpl contactGroup = contactGroups.next(); + ContactGroupMsnImpl contactGroup + = (ContactGroupMsnImpl)contactGroups.next(); result = contactGroup.findContact(id); @@ -291,13 +293,13 @@ public class ServerStoredContactListMsnImpl } - Iterator<ContactMsnImpl> rootContacts = rootGroup.contacts(); + Iterator<Contact> rootContacts = rootGroup.contacts(); while (rootContacts.hasNext()) { - ContactMsnImpl item = (ContactMsnImpl) rootContacts.next(); + Contact item = rootContacts.next(); if(item.getAddress().equals(id)) - return item; + return (ContactMsnImpl)item; } return null; @@ -314,21 +316,22 @@ public class ServerStoredContactListMsnImpl */ public ContactGroup findContactGroup(ContactMsnImpl child) { - Iterator<ContactGroupMsnImpl> contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); while(contactGroups.hasNext()) { - ContactGroupMsnImpl contactGroup = contactGroups.next(); + ContactGroupMsnImpl contactGroup + = (ContactGroupMsnImpl)contactGroups.next(); if( contactGroup.findContact(child.getAddress())!= null) return contactGroup; } - Iterator<ContactMsnImpl> contacts = rootGroup.contacts(); + Iterator<Contact> contacts = rootGroup.contacts(); while(contacts.hasNext()) { - ContactMsnImpl contact = contacts.next(); + Contact contact = contacts.next(); if( contact.equals(child)) return rootGroup; @@ -687,11 +690,12 @@ public class ServerStoredContactListMsnImpl */ private ContactGroupMsnImpl findContactGroupByMsnId(String id) { - Iterator<ContactGroupMsnImpl> contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); while(contactGroups.hasNext()) { - ContactGroupMsnImpl contactGroup = contactGroups.next(); + ContactGroupMsnImpl contactGroup + = (ContactGroupMsnImpl)contactGroups.next(); if (contactGroup.getSourceGroup().getGroupId().equals(id)) return contactGroup; diff --git a/src/net/java/sip/communicator/impl/protocol/yahoo/ContactGroupYahooImpl.java b/src/net/java/sip/communicator/impl/protocol/yahoo/ContactGroupYahooImpl.java index d43f65b..a183c18 100644 --- a/src/net/java/sip/communicator/impl/protocol/yahoo/ContactGroupYahooImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/yahoo/ContactGroupYahooImpl.java @@ -26,11 +26,12 @@ import ymsg.network.*; * source group is changed. * * @author Damian Minkov + * @author Emil Ivov */ public class ContactGroupYahooImpl extends AbstractContactGroupYahooImpl { - private List buddies = new LinkedList(); + private Map<String, Contact> buddies = new Hashtable<String, Contact>(); private boolean isResolved = false; /** @@ -42,7 +43,7 @@ public class ContactGroupYahooImpl * a list that would always remain empty. We only use it so that we're able * to extract empty iterators */ - private List dummyGroupsList = new LinkedList(); + private List<ContactGroup> dummyGroupsList = new LinkedList<ContactGroup>(); private String tempId = null; @@ -66,7 +67,7 @@ public class ContactGroupYahooImpl */ ContactGroupYahooImpl( YahooGroup yahooGroup, - Vector groupMembers, + Vector<YahooUser> groupMembers, ServerStoredContactListYahooImpl ssclCallback, boolean isResolved) { @@ -74,19 +75,30 @@ public class ContactGroupYahooImpl this.isResolved = isResolved; this.ssclCallback = ssclCallback; - Iterator iter = groupMembers.iterator(); + Iterator<YahooUser> iter = groupMembers.iterator(); while(iter.hasNext()) { + YahooUser yahooUser = iter.next(); + + //only add the contact if it doesn't already exist in some other + //group. this would be necessary if Yahoo! one day start allowing + //the same contact in more than one group, which is not quite + //unlikely since most of the other protocols do it. + if(ssclCallback.findContactByYahooUser(yahooUser) != null) + { + continue; + } + + addContact( new ContactYahooImpl( - (YahooUser)iter.next(), + yahooUser, ssclCallback, true, true) ); } } - ContactGroupYahooImpl( - String id, - ServerStoredContactListYahooImpl ssclCallback) + ContactGroupYahooImpl( String id, + ServerStoredContactListYahooImpl ssclCallback) { this.tempId = id; this.isResolved = false; @@ -117,22 +129,12 @@ public class ContactGroupYahooImpl } /** - * Adds the specified contact at the specified position. - * @param contact the new contact to add to this group - * @param index the position where the new contact should be added. - */ - void addContact(int index, ContactYahooImpl contact) - { - buddies.add(index, contact); - } - - /** * Adds the specified contact to the end of this group. * @param contact the new contact to add to this group */ void addContact(ContactYahooImpl contact) { - addContact(countContacts(), contact); + buddies.put(contact.getAddress().toLowerCase(), contact); } @@ -142,31 +144,7 @@ public class ContactGroupYahooImpl */ void removeContact(ContactYahooImpl contact) { - removeContact(buddies.indexOf(contact)); - } - - /** - * Removes the contact with the specified index. - * @param index the index of the cntact to remove - */ - void removeContact(int index) - { - buddies.remove(index); - } - - /** - * Removes all buddies in this group and reinsterts them as specified - * by the <tt>newOrder</tt> param. Contacts not contained in the - * newOrder list are left at the end of this group. - * - * @param newOrder a list containing all contacts in the order that is - * to be applied. - * - */ - void reorderContacts(List newOrder) - { - buddies.removeAll(newOrder); - buddies.addAll(0, newOrder); + buddies.remove(contact.getAddress().toLowerCase()); } /** @@ -177,9 +155,9 @@ public class ContactGroupYahooImpl * <tt>ContactGroup</tt>. In case the group doesn't contain any * memebers it will return an empty iterator. */ - public Iterator contacts() + public Iterator<Contact> contacts() { - return buddies.iterator(); + return buddies.values().iterator(); } /** @@ -244,7 +222,7 @@ public class ContactGroupYahooImpl * * @return an empty iterator */ - public Iterator subgroups() + public Iterator<ContactGroup> subgroups() { return dummyGroupsList.iterator(); } @@ -317,10 +295,10 @@ public class ContactGroupYahooImpl buff.append(getGroupName()); buff.append(", childContacts="+countContacts()+":["); - Iterator contacts = contacts(); + Iterator<Contact> contacts = contacts(); while (contacts.hasNext()) { - ContactYahooImpl contact = (ContactYahooImpl) contacts.next(); + Contact contact = contacts.next(); buff.append(contact.toString()); if(contacts.hasNext()) buff.append(", "); @@ -338,15 +316,9 @@ public class ContactGroupYahooImpl */ ContactYahooImpl findContact(String id) { - Iterator contacts = contacts(); - while (contacts.hasNext()) - { - ContactYahooImpl item = (ContactYahooImpl) contacts.next(); - - if(item.getID().equals(YahooSession.getYahooUserID(id))) - return item; - } - return null; + if(id == null) + return null; + return (ContactYahooImpl)buddies.get(id.toLowerCase()); } /** @@ -399,11 +371,11 @@ public class ContactGroupYahooImpl this.yahooGroup = yahooGroup; - Vector contacts = yahooGroup.getMembers(); - Iterator iter = contacts.iterator(); + Vector<YahooUser> contacts = yahooGroup.getMembers(); + Iterator<YahooUser> iter = contacts.iterator(); while(iter.hasNext()) { - YahooUser item = (YahooUser)iter.next(); + YahooUser item = iter.next(); ContactYahooImpl contact = ssclCallback.findContactById(item.getId()); diff --git a/src/net/java/sip/communicator/impl/protocol/yahoo/ContactYahooImpl.java b/src/net/java/sip/communicator/impl/protocol/yahoo/ContactYahooImpl.java index c31ed16..b263ed6 100644 --- a/src/net/java/sip/communicator/impl/protocol/yahoo/ContactYahooImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/yahoo/ContactYahooImpl.java @@ -14,6 +14,7 @@ import ymsg.network.*; /** * The Yahoo implementation of the service.protocol.Contact interface. * @author Damian Minkov + * @author Emil Ivov */ public class ContactYahooImpl implements Contact diff --git a/src/net/java/sip/communicator/impl/protocol/yahoo/RootContactGroupYahooImpl.java b/src/net/java/sip/communicator/impl/protocol/yahoo/RootContactGroupYahooImpl.java index 33ae66f..fb51c85 100644 --- a/src/net/java/sip/communicator/impl/protocol/yahoo/RootContactGroupYahooImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/yahoo/RootContactGroupYahooImpl.java @@ -19,13 +19,13 @@ public class RootContactGroupYahooImpl extends AbstractContactGroupYahooImpl { private String ROOT_CONTACT_GROUP_NAME = "ContactListRoot"; - private List subGroups = new LinkedList(); + private List<ContactGroup> subGroups = new LinkedList<ContactGroup>(); private boolean isResolved = false; /** * An empty list that we use when returning an iterator. */ - private List dummyContacts = new LinkedList(); + private List<Contact> dummyContacts = new LinkedList<Contact>(); private ProtocolProviderServiceYahooImpl ownerProvider = null; @@ -92,21 +92,6 @@ public class RootContactGroupYahooImpl } /** - * Removes all contact sub groups and reinsterts them as specified - * by the <tt>newOrder</tt> param. Contact groups not contained in the - * newOrder list are left at the end of this group. - * - * @param newOrder a list containing all contact groups in the order that is - * to be applied. - * - */ - void reorderSubGroups(List newOrder) - { - subGroups.removeAll(newOrder); - subGroups.addAll(0, newOrder); - } - - /** * Returns the number of subgroups contained by this * <tt>RootContactGroupImpl</tt>. * @@ -145,10 +130,10 @@ public class RootContactGroupYahooImpl */ public ContactGroup getGroup(String groupName) { - Iterator subgroups = subgroups(); + Iterator<ContactGroup> subgroups = subgroups(); while (subgroups.hasNext()) { - ContactGroupYahooImpl grp = (ContactGroupYahooImpl) subgroups.next(); + ContactGroup grp = subgroups.next(); if (grp.getGroupName().equals(groupName)) return grp; @@ -164,7 +149,7 @@ public class RootContactGroupYahooImpl * @return a java.util.Iterator over the <tt>ContactGroup</tt> * children of this group (i.e. subgroups). */ - public Iterator subgroups() + public Iterator<ContactGroup> subgroups() { return subGroups.iterator(); } @@ -186,7 +171,7 @@ public class RootContactGroupYahooImpl * @return a java.util.Iterator over all contacts inside this * <tt>ContactGroup</tt> */ - public Iterator contacts() + public Iterator<Contact> contacts() { return dummyContacts.iterator(); } @@ -216,10 +201,10 @@ public class RootContactGroupYahooImpl StringBuffer buff = new StringBuffer(getGroupName()); buff.append(".subGroups=" + countSubgroups() + ":\n"); - Iterator subGroups = subgroups(); + Iterator<ContactGroup> subGroups = subgroups(); while (subGroups.hasNext()) { - ContactGroup group = (ContactGroup) subGroups.next(); + ContactGroup group = subGroups.next(); buff.append(group.toString()); if (subGroups.hasNext()) buff.append("\n"); diff --git a/src/net/java/sip/communicator/impl/protocol/yahoo/ServerStoredContactListYahooImpl.java b/src/net/java/sip/communicator/impl/protocol/yahoo/ServerStoredContactListYahooImpl.java index 1d86167..c973d0c 100644 --- a/src/net/java/sip/communicator/impl/protocol/yahoo/ServerStoredContactListYahooImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/yahoo/ServerStoredContactListYahooImpl.java @@ -22,6 +22,7 @@ import ymsg.network.event.*; * corresponding sip-communicator events to all events coming from smack. * * @author Damian Minkov + * @author Emil Ivov */ public class ServerStoredContactListYahooImpl { @@ -61,7 +62,8 @@ public class ServerStoredContactListYahooImpl * Listeners that would receive event notifications for changes in group * names or other properties, removal or creation of groups. */ - private Vector serverStoredGroupListeners = new Vector(); + private Vector<ServerStoredGroupListener> serverStoredGroupListeners + = new Vector<ServerStoredGroupListener>(); private ContactListModListenerImpl contactListModListenerImpl = new ContactListModListenerImpl(); @@ -71,7 +73,8 @@ public class ServerStoredContactListYahooImpl */ private AuthorizationHandler handler = null; - private Hashtable addedCustomYahooIds = new Hashtable(); + private Hashtable<String, String> addedCustomYahooIds + = new Hashtable<String, String>(); /** * Creates a ServerStoredContactList wrapper for the specified BuddyList. @@ -165,16 +168,16 @@ public class ServerStoredContactListYahooImpl logger.trace("Will dispatch the following grp event: " + evt); - Iterator listeners = null; + Iterator<ServerStoredGroupListener> listeners = null; synchronized (serverStoredGroupListeners) { - listeners = new ArrayList(serverStoredGroupListeners).iterator(); + listeners = new ArrayList<ServerStoredGroupListener>( + serverStoredGroupListeners).iterator(); } while (listeners.hasNext()) { - ServerStoredGroupListener listener - = (ServerStoredGroupListener) listeners.next(); + ServerStoredGroupListener listener = listeners.next(); try{ if (eventID == ServerStoredGroupEvent.GROUP_REMOVED_EVENT) @@ -235,7 +238,7 @@ public class ServerStoredContactListYahooImpl } /** - * Retrns a reference to the provider that created us. + * Returns a reference to the provider that created us. * @return a reference to a ProtocolProviderServiceImpl instance. */ ProtocolProviderServiceYahooImpl getParentProvider() @@ -253,7 +256,7 @@ public class ServerStoredContactListYahooImpl */ public ContactGroupYahooImpl findContactGroup(String name) { - Iterator contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); while(contactGroups.hasNext()) { @@ -277,7 +280,7 @@ public class ServerStoredContactListYahooImpl */ public ContactYahooImpl findContactById(String id) { - Iterator contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); ContactYahooImpl result = null; while(contactGroups.hasNext()) @@ -295,6 +298,19 @@ public class ServerStoredContactListYahooImpl } /** + * Returns the Contact corresponding to the specified <tt>YahooUser</tt> + * or null if no such id was found. + * + * @param yahooUser the YahooUser of the contact to find. + * @return the <tt>Contact</tt> carrying the specified + * <tt>screenName</tt> or <tt>null</tt> if no such contact exits. + */ + public ContactYahooImpl findContactByYahooUser(YahooUser yahooUser) + { + return findContactById(yahooUser.getId().toLowerCase()); + } + + /** * Returns the ContactGroup containing the specified contact or null * if no such group or contact exist. * @@ -305,14 +321,15 @@ public class ServerStoredContactListYahooImpl */ public ContactGroup findContactGroup(ContactYahooImpl child) { - Iterator contactGroups = rootGroup.subgroups(); + Iterator<ContactGroup> contactGroups = rootGroup.subgroups(); + String contactAddress = child.getAddress(); while(contactGroups.hasNext()) { ContactGroupYahooImpl contactGroup = (ContactGroupYahooImpl) contactGroups.next(); - if( contactGroup.findContact(child.getAddress())!= null) + if( contactGroup.findContact(contactAddress)!= null) return contactGroup; } @@ -433,9 +450,11 @@ public class ServerStoredContactListYahooImpl * @param id the Address of the contact to create. * @return the newly created unresolved <tt>ContactImpl</tt> */ - ContactYahooImpl createUnresolvedContact(ContactGroup parentGroup, String id) + ContactYahooImpl createUnresolvedContact(ContactGroup parentGroup, + String id) { - logger.trace("Creating unresolved contact " + id + " to parent=" + parentGroup); + logger.trace("Creating unresolved contact " + id + + " to parent=" + parentGroup); ContactYahooImpl newUnresolvedContact = new ContactYahooImpl(id, this, false, false, false); @@ -460,6 +479,15 @@ public class ServerStoredContactListYahooImpl */ ContactGroupYahooImpl createUnresolvedContactGroup(String groupName) { + ContactGroupYahooImpl existingGroup = findContactGroup(groupName); + + if( existingGroup != null && existingGroup.isPersistent() ) + { + logger.debug("ContactGroup " + groupName + " already exists."); + throw new IllegalArgumentException( + "ContactGroup " + groupName + " already exists."); + } + ContactGroupYahooImpl newUnresolvedGroup = new ContactGroupYahooImpl(groupName, this); @@ -515,7 +543,8 @@ public class ServerStoredContactListYahooImpl return; } - Vector contacts = groupToRemove.getSourceGroup().getMembers(); + Vector<YahooUser> contacts + = groupToRemove.getSourceGroup().getMembers(); if(contacts.size() == 0) { @@ -526,14 +555,15 @@ public class ServerStoredContactListYahooImpl return; } - Iterator iter = contacts.iterator(); + Iterator<YahooUser> iter = contacts.iterator(); while(iter.hasNext()) { - YahooUser item = (YahooUser)iter.next(); + YahooUser item = iter.next(); try { - yahooSession.removeFriend(item.getId(), groupToRemove.getGroupName()); + yahooSession.removeFriend(item.getId(), + groupToRemove.getGroupName()); } catch(IOException ex) { @@ -661,27 +691,6 @@ public class ServerStoredContactListYahooImpl } /** - * Finds Group by provided its yahoo ID - * @param id String - * @return ContactGroupYahooImpl - */ - private ContactGroupYahooImpl findContactGroupByYahooId(String id) - { - Iterator contactGroups = rootGroup.subgroups(); - - while(contactGroups.hasNext()) - { - ContactGroupYahooImpl contactGroup - = (ContactGroupYahooImpl) contactGroups.next(); - - if (contactGroup.getSourceGroup().getName().equals(id)) - return contactGroup; - } - - return null; - } - - /** * Make the parent persistent presence operation set dispatch a contact * added event. * @param parentGroup the group where the new contact was added @@ -727,7 +736,8 @@ public class ServerStoredContactListYahooImpl */ private void initList() { - logger.trace("Start init list of " + yahooProvider.getAccountID().getUserID()); + logger.trace("Start init list of " + + yahooProvider.getAccountID().getUserID()); YahooGroup[] groups = yahooSession.getGroups(); @@ -740,13 +750,14 @@ public class ServerStoredContactListYahooImpl if(group == null) { // create the group as it doesn't exist - group = - new ContactGroupYahooImpl(item, item.getMembers(), this, true); + group = new ContactGroupYahooImpl( + item, item.getMembers(), this, true); rootGroup.addSubGroup(group); //tell listeners about the added group - fireGroupEvent(group, ServerStoredGroupEvent.GROUP_CREATED_EVENT); + fireGroupEvent(group, + ServerStoredGroupEvent.GROUP_CREATED_EVENT); } else { @@ -860,7 +871,7 @@ public class ServerStoredContactListYahooImpl private class ContactListModListenerImpl extends SessionAdapter { - private Hashtable waitMove = new Hashtable(); + private Hashtable<String, Object> waitMove = new Hashtable<String, Object>(); public void waitForMove(String id, String oldParent) { @@ -926,7 +937,7 @@ public class ServerStoredContactListYahooImpl if(addedCustomYahooIds.containsKey(contactID)) { String expectedContactID = - (String)addedCustomYahooIds.remove(contactID); + addedCustomYahooIds.remove(contactID); contactToAdd = new ContactYahooImpl(expectedContactID, ev.getFriend(), @@ -1181,4 +1192,4 @@ public class ServerStoredContactListYahooImpl session.addSessionListener(contactListModListenerImpl); initList(); } -}
\ No newline at end of file +} diff --git a/test/net/java/sip/communicator/slick/protocol/jabber/TestOperationSetPresence.java b/test/net/java/sip/communicator/slick/protocol/jabber/TestOperationSetPresence.java index 1ad8f03..b2c7d9e 100644 --- a/test/net/java/sip/communicator/slick/protocol/jabber/TestOperationSetPresence.java +++ b/test/net/java/sip/communicator/slick/protocol/jabber/TestOperationSetPresence.java @@ -37,13 +37,17 @@ public class TestOperationSetPresence private JabberSlickFixture fixture = new JabberSlickFixture(); private OperationSetPresence operationSetPresence1 = null; - private final Map supportedStatusSet1 = new HashMap(); + private final Map<String, PresenceStatus> supportedStatusSet1 + = new HashMap<String, PresenceStatus>(); private OperationSetPresence operationSetPresence2 = null; - private final Map supportedStatusSet2 = new HashMap(); + private final Map<String, PresenceStatus> supportedStatusSet2 + = new HashMap<String, PresenceStatus>(); private String statusMessageRoot = new String("Our status is now: "); - private static AuthEventCollector authEventCollector1 = new AuthEventCollector(); - private static AuthEventCollector authEventCollector2 = new AuthEventCollector(); + private static AuthEventCollector authEventCollector1 + = new AuthEventCollector(); + private static AuthEventCollector authEventCollector2 + = new AuthEventCollector(); public TestOperationSetPresence(String name) { @@ -109,22 +113,20 @@ public class TestOperationSetPresence * are specific to the ProtocolProviderService implementations. */ // operationSetPresence1 - for (Iterator supportedStatusIt = - operationSetPresence1.getSupportedStatusSet(); supportedStatusIt - .hasNext();) + for (Iterator<PresenceStatus> supportedStatusIt + = operationSetPresence1.getSupportedStatusSet(); + supportedStatusIt.hasNext();) { - PresenceStatus supportedStatus = - (PresenceStatus) supportedStatusIt.next(); + PresenceStatus supportedStatus = supportedStatusIt.next(); supportedStatusSet1.put(supportedStatus.getStatusName(), supportedStatus); } // operationSetPresence2 - for (Iterator supportedStatusIt = - operationSetPresence2.getSupportedStatusSet(); supportedStatusIt - .hasNext();) + for (Iterator<PresenceStatus> supportedStatusIt + = operationSetPresence2.getSupportedStatusSet(); + supportedStatusIt.hasNext();) { - PresenceStatus supportedStatus = - (PresenceStatus) supportedStatusIt.next(); + PresenceStatus supportedStatus = supportedStatusIt.next(); supportedStatusSet2.put(supportedStatus.getStatusName(), supportedStatus); } @@ -182,10 +184,10 @@ public class TestOperationSetPresence { //first create a local list containing the presence status instances //supported by the underlying implementation. - Iterator supportedStatusSetIter = + Iterator<PresenceStatus> supportedStatusSetIter = operationSetPresence1.getSupportedStatusSet(); - List supportedStatusNames = new LinkedList(); + List<String> supportedStatusNames = new LinkedList<String>(); while (supportedStatusSetIter.hasNext()) { supportedStatusNames.add(((PresenceStatus) supportedStatusSetIter @@ -194,7 +196,7 @@ public class TestOperationSetPresence //create a copy of the MUST status set and remove any matching status //that is also present in the supported set. - List requiredStatusNames = + List<String> requiredStatusNames = Arrays.asList(JabberStatusEnum.getStatusNames()); requiredStatusNames.removeAll(supportedStatusNames); @@ -228,8 +230,8 @@ public class TestOperationSetPresence } /** - * Verify that changing state to FREE_FOR_CHAT works as supposed to and that it - * generates the corresponding event. + * Verify that changing state to FREE_FOR_CHAT works as supposed to and + * that it generates the corresponding event. * @throws Exception in case a failure occurs while the operation set * is switching to the new state. */ @@ -261,11 +263,11 @@ public class TestOperationSetPresence { logger.trace(" --=== beginning state transition test ===--"); - PresenceStatus newStatus = - getPresenceStatus(supportedStatusSet1, newStatusName); + PresenceStatus newStatus = supportedStatusSet1.get(newStatusName); PresenceStatus oldStatus = operationSetPresence1.getPresenceStatus(); - String oldStatusMessage = operationSetPresence1.getCurrentStatusMessage(); + String oldStatusMessage + = operationSetPresence1.getCurrentStatusMessage(); String newStatusMessage = statusMessageRoot + newStatus; logger.debug( "old status is=" + oldStatus.getStatusName() @@ -279,7 +281,8 @@ public class TestOperationSetPresence statusEventCollector); //change the status - operationSetPresence1.publishPresenceStatus(newStatus, newStatusMessage); + operationSetPresence1 + .publishPresenceStatus(newStatus, newStatusMessage); pauseAfterStateChanges(); //test event notification. @@ -293,14 +296,12 @@ public class TestOperationSetPresence 1, statusEventCollector.collectedPresEvents.size()); assertEquals("A status changed event contained wrong old status.", oldStatus, - ((ProviderPresenceStatusChangeEvent) - statusEventCollector.collectedPresEvents.get(0)) - .getOldStatus()); + statusEventCollector + .collectedPresEvents.get(0).getOldStatus()); assertEquals("A status changed event contained wrong new status.", newStatus, - ((ProviderPresenceStatusChangeEvent) - statusEventCollector.collectedPresEvents.get(0)) - .getNewStatus()); + statusEventCollector + .collectedPresEvents.get(0).getNewStatus()); // verify that the operation set itself is aware of the status change assertEquals("opSet.getPresenceStatus() did not return properly.", @@ -344,7 +345,7 @@ public class TestOperationSetPresence { try { - Thread.currentThread().sleep(1500); + Thread.sleep(1500); } catch (InterruptedException ex) { @@ -395,8 +396,8 @@ public class TestOperationSetPresence private void subtestQueryContactStatus(String status, String expectedReturn) throws Exception { - operationSetPresence2.publishPresenceStatus(getPresenceStatus( - supportedStatusSet2, status), "status message"); + operationSetPresence2.publishPresenceStatus( + supportedStatusSet2.get(status), "status message"); pauseAfterStateChanges(); @@ -405,7 +406,7 @@ public class TestOperationSetPresence assertEquals("Querying a " + expectedReturn + " state did not return as expected" - , getPresenceStatus(supportedStatusSet1, expectedReturn) + , supportedStatusSet1.get(expectedReturn) , actualReturn); } @@ -493,7 +494,8 @@ public class TestOperationSetPresence authEventCollector2.responseToRequest.getResponseCode(), authEventCollector1.response.getResponseCode()); - // fix . from no on accept all subscription request for the two tested accounts + // fix . from no on accept all subscription request for the two + // tested accounts authEventCollector1.responseToRequest = new AuthorizationResponse(AuthorizationResponse.ACCEPT, null); authEventCollector2.responseToRequest = @@ -501,20 +503,21 @@ public class TestOperationSetPresence operationSetPresence1.removeSubscriptionListener(subEvtCollector); - + assertTrue("Subscription event dispatching failed." , subEvtCollector.collectedEvents.size() > 0); - + SubscriptionEvent subEvt = null; - - Iterator events = subEvtCollector.collectedEvents.iterator(); + + Iterator<EventObject> events + = subEvtCollector.collectedEvents.iterator(); while (events.hasNext()) { SubscriptionEvent elem = (SubscriptionEvent) events.next(); if(elem.getEventID() == SubscriptionEvent.SUBSCRIPTION_CREATED) subEvt = elem; } - + // it happens that when adding contacts which require authorization // sometimes the collected events are 3 - added, deleted, added // so we get the last one if there is such @@ -538,16 +541,14 @@ public class TestOperationSetPresence PresenceStatus oldStatus = operationSetPresence2.getPresenceStatus(); - PresenceStatus newStatus = - getPresenceStatus(supportedStatusSet2, - JabberStatusEnum.FREE_FOR_CHAT); + PresenceStatus newStatus + = supportedStatusSet2.get(JabberStatusEnum.FREE_FOR_CHAT); //in case we are by any chance already in a FREE_FOR_CHAT status, we'll //be changing to something else if(oldStatus.equals(newStatus)){ - newStatus = - getPresenceStatus(supportedStatusSet2, - JabberStatusEnum.DO_NOT_DISTURB); + newStatus + = supportedStatusSet2.get(JabberStatusEnum.DO_NOT_DISTURB); } //now do the actual status notification testing @@ -558,7 +559,8 @@ public class TestOperationSetPresence contactPresEvtCollector); synchronized (contactPresEvtCollector){ - operationSetPresence2.publishPresenceStatus(newStatus, "new status"); + operationSetPresence2 + .publishPresenceStatus(newStatus, "new status"); //we may already have the event, but it won't hurt to check. contactPresEvtCollector.waitForEvent(10000); operationSetPresence1 @@ -647,16 +649,14 @@ public class TestOperationSetPresence logger.debug("Testing (lack of) presence notifications."); PresenceStatus oldStatus = operationSetPresence2.getPresenceStatus(); - PresenceStatus newStatus = - getPresenceStatus(supportedStatusSet2, - JabberStatusEnum.FREE_FOR_CHAT); + PresenceStatus newStatus + = supportedStatusSet2.get(JabberStatusEnum.FREE_FOR_CHAT); //in case we are by any chance already in a FREE_FOR_CHAT status, we'll //be changing to something else if(oldStatus.equals(newStatus)){ - newStatus = - getPresenceStatus(supportedStatusSet2, - JabberStatusEnum.DO_NOT_DISTURB); + newStatus + = supportedStatusSet2.get(JabberStatusEnum.DO_NOT_DISTURB); } //now do the actual status notification testing @@ -665,8 +665,10 @@ public class TestOperationSetPresence operationSetPresence1.addContactPresenceStatusListener( contactPresEvtCollector); - synchronized (contactPresEvtCollector){ - operationSetPresence2.publishPresenceStatus(newStatus, "new status"); + synchronized (contactPresEvtCollector) + { + operationSetPresence2.publishPresenceStatus( + newStatus, "new status"); //we may already have the event, but it won't hurt to check. contactPresEvtCollector.waitForEvent(10000); @@ -700,14 +702,17 @@ public class TestOperationSetPresence private class PresenceStatusEventCollector implements ProviderPresenceStatusListener { - public ArrayList collectedPresEvents = new ArrayList(); - public ArrayList collectedStatMsgEvents = new ArrayList(); + public ArrayList<ProviderPresenceStatusChangeEvent> collectedPresEvents + = new ArrayList<ProviderPresenceStatusChangeEvent>(); + public ArrayList<PropertyChangeEvent> collectedStatMsgEvents + = new ArrayList<PropertyChangeEvent>(); public void providerStatusChanged(ProviderPresenceStatusChangeEvent evt) { synchronized(this) { - logger.debug("Collected evt("+collectedPresEvents.size()+")= "+evt); + logger.debug("Collected evt("+collectedPresEvents.size() + +")= "+evt); collectedPresEvents.add(evt); notifyAll(); } @@ -737,7 +742,8 @@ public class TestOperationSetPresence synchronized(this) { if(collectedPresEvents.size() > 0){ - logger.trace("Change already received. " + collectedPresEvents); + logger.trace("Change already received. " + + collectedPresEvents); return; } @@ -782,8 +788,8 @@ public class TestOperationSetPresence +waitFor+"ms."); } catch (InterruptedException ex){ - logger.debug("Interrupted while waiting for a status msg evt" - , ex); + logger.debug( + "Interrupted while waiting for a status msg evt", ex); } } } @@ -795,7 +801,8 @@ public class TestOperationSetPresence */ private class SubscriptionEventCollector implements SubscriptionListener { - public ArrayList collectedEvents = new ArrayList(); + public ArrayList<EventObject> collectedEvents + = new ArrayList<EventObject>(); /** * Blocks until at least one event is received or until waitFor @@ -922,7 +929,8 @@ public class TestOperationSetPresence private class ContactPresenceEventCollector implements ContactPresenceStatusListener { - public ArrayList collectedEvents = new ArrayList(); + public ArrayList<ContactPresenceStatusChangeEvent> collectedEvents + = new ArrayList<ContactPresenceStatusChangeEvent>(); private String trackedScreenName = null; private PresenceStatus status = null; @@ -977,7 +985,7 @@ public class TestOperationSetPresence if( status == null ) return; - + if(status != evt.getNewStatus()) return; @@ -988,12 +996,6 @@ public class TestOperationSetPresence } } - private PresenceStatus getPresenceStatus(Map supportedStatusSet, - String statusName) - { - return (PresenceStatus) supportedStatusSet.get(statusName); - } - /** * Authorization handler for the implementation tests * <p> @@ -1101,7 +1103,7 @@ public class TestOperationSetPresence { synchronized(this) { - if(isAuthorizationRequestReceived) + if(isAuthorizationRequestReceived) { logger.debug("authorization request already received"); return; @@ -1117,46 +1119,4 @@ public class TestOperationSetPresence } } } - - /** - * Used to wait till buddy is removed from our contact list. - * Used in the authorization process tests - */ - private class UnsubscribeWait implements SubscriptionListener - { - public void waitForUnsubscribre(long waitFor) - { - synchronized(this) - { - try{ - wait(waitFor); - } - catch (InterruptedException ex) - { - logger.debug( - "Interrupted while waiting for a subscription evt", ex); - } - } - } - - public void subscriptionRemoved(SubscriptionEvent evt) - { - synchronized(this) - { - logger.debug("Got subscriptionRemoved " + evt); - notifyAll(); - } - } - - public void subscriptionCreated(SubscriptionEvent evt) - {} - public void subscriptionFailed(SubscriptionEvent evt) - {} - public void subscriptionMoved(SubscriptionMovedEvent evt) - {} - public void subscriptionResolved(SubscriptionEvent evt) - {} - public void contactModified(ContactPropertyChangeEvent evt) - {} - } } |