aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmil Ivov <emcho@jitsi.org>2009-04-29 11:03:14 +0000
committerEmil Ivov <emcho@jitsi.org>2009-04-29 11:03:14 +0000
commit896bf47772ebd1f6209625a5de0bf699ac6b1776 (patch)
tree5c20a482ae6be6a78b9727ffcc648a897111f066
parentd183350ccf3947339584dae05fad9c1089ba5bd3 (diff)
downloadjitsi-896bf47772ebd1f6209625a5de0bf699ac6b1776.zip
jitsi-896bf47772ebd1f6209625a5de0bf699ac6b1776.tar.gz
jitsi-896bf47772ebd1f6209625a5de0bf699ac6b1776.tar.bz2
Fixes raw type warnings (Part of issue #637).
-rw-r--r--src/net/java/sip/communicator/impl/protocol/icq/ContactGroupIcqImpl.java22
-rw-r--r--src/net/java/sip/communicator/impl/protocol/icq/RootContactGroupIcqImpl.java18
-rw-r--r--src/net/java/sip/communicator/impl/protocol/icq/ServerStoredContactListIcqImpl.java49
-rw-r--r--src/net/java/sip/communicator/impl/protocol/jabber/ContactGroupJabberImpl.java1
-rwxr-xr-xsrc/net/java/sip/communicator/impl/protocol/jabber/RootContactGroupJabberImpl.java1
-rw-r--r--src/net/java/sip/communicator/impl/protocol/jabber/ServerStoredContactListJabberImpl.java1
-rw-r--r--src/net/java/sip/communicator/impl/protocol/msn/ContactGroupMsnImpl.java28
-rw-r--r--src/net/java/sip/communicator/impl/protocol/msn/EventManager.java30
-rw-r--r--src/net/java/sip/communicator/impl/protocol/msn/OperationSetPersistentPresenceMsnImpl.java63
-rwxr-xr-xsrc/net/java/sip/communicator/impl/protocol/msn/RootContactGroupMsnImpl.java32
-rw-r--r--src/net/java/sip/communicator/impl/protocol/msn/ServerStoredContactListMsnImpl.java32
-rw-r--r--src/net/java/sip/communicator/impl/protocol/yahoo/ContactGroupYahooImpl.java94
-rw-r--r--src/net/java/sip/communicator/impl/protocol/yahoo/ContactYahooImpl.java1
-rw-r--r--src/net/java/sip/communicator/impl/protocol/yahoo/RootContactGroupYahooImpl.java31
-rw-r--r--src/net/java/sip/communicator/impl/protocol/yahoo/ServerStoredContactListYahooImpl.java101
-rw-r--r--test/net/java/sip/communicator/slick/protocol/jabber/TestOperationSetPresence.java184
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)
- {}
- }
}