mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2025-09-10 18:59:41 +02:00
add generics
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@11422 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
parent
0b7421eae3
commit
06805b248d
9 changed files with 52 additions and 51 deletions
|
@ -52,9 +52,9 @@ public class AgentRoster {
|
|||
|
||||
private XMPPConnection connection;
|
||||
private String workgroupJID;
|
||||
private List entries;
|
||||
private List listeners;
|
||||
private Map presenceMap;
|
||||
private List<String> entries;
|
||||
private List<AgentRosterListener> listeners;
|
||||
private Map<String, Map<String, Presence>> presenceMap;
|
||||
// The roster is marked as initialized when at least a single roster packet
|
||||
// has been recieved and processed.
|
||||
boolean rosterInitialized = false;
|
||||
|
@ -67,9 +67,9 @@ public class AgentRoster {
|
|||
AgentRoster(XMPPConnection connection, String workgroupJID) {
|
||||
this.connection = connection;
|
||||
this.workgroupJID = workgroupJID;
|
||||
entries = new ArrayList();
|
||||
listeners = new ArrayList();
|
||||
presenceMap = new HashMap();
|
||||
entries = new ArrayList<String>();
|
||||
listeners = new ArrayList<AgentRosterListener>();
|
||||
presenceMap = new HashMap<String, Map<String, Presence>>();
|
||||
// Listen for any roster packets.
|
||||
PacketFilter rosterFilter = new PacketTypeFilter(AgentStatusRequest.class);
|
||||
connection.addPacketListener(new AgentStatusListener(), rosterFilter);
|
||||
|
@ -106,19 +106,19 @@ public class AgentRoster {
|
|||
listeners.add(listener);
|
||||
|
||||
// Fire events for the existing entries and presences in the roster
|
||||
for (Iterator it = getAgents().iterator(); it.hasNext();) {
|
||||
String jid = (String)it.next();
|
||||
for (Iterator<String> it = getAgents().iterator(); it.hasNext();) {
|
||||
String jid = it.next();
|
||||
// Check again in case the agent is no longer in the roster (highly unlikely
|
||||
// but possible)
|
||||
if (entries.contains(jid)) {
|
||||
// Fire the agent added event
|
||||
listener.agentAdded(jid);
|
||||
Map userPresences = (Map)presenceMap.get(jid);
|
||||
Map<String,Presence> userPresences = presenceMap.get(jid);
|
||||
if (userPresences != null) {
|
||||
Iterator presences = userPresences.values().iterator();
|
||||
Iterator<Presence> presences = userPresences.values().iterator();
|
||||
while (presences.hasNext()) {
|
||||
// Fire the presence changed event
|
||||
listener.presenceChanged((Presence)presences.next());
|
||||
listener.presenceChanged(presences.next());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -153,10 +153,10 @@ public class AgentRoster {
|
|||
*
|
||||
* @return all entries in the roster.
|
||||
*/
|
||||
public Set getAgents() {
|
||||
Set agents = new HashSet();
|
||||
public Set<String> getAgents() {
|
||||
Set<String> agents = new HashSet<String>();
|
||||
synchronized (entries) {
|
||||
for (Iterator i = entries.iterator(); i.hasNext();) {
|
||||
for (Iterator<String> i = entries.iterator(); i.hasNext();) {
|
||||
agents.add(i.next());
|
||||
}
|
||||
}
|
||||
|
@ -176,8 +176,8 @@ public class AgentRoster {
|
|||
return false;
|
||||
}
|
||||
synchronized (entries) {
|
||||
for (Iterator i = entries.iterator(); i.hasNext();) {
|
||||
String entry = (String)i.next();
|
||||
for (Iterator<String> i = entries.iterator(); i.hasNext();) {
|
||||
String entry = i.next();
|
||||
if (entry.toLowerCase().equals(jid.toLowerCase())) {
|
||||
return true;
|
||||
}
|
||||
|
@ -197,7 +197,7 @@ public class AgentRoster {
|
|||
*/
|
||||
public Presence getPresence(String user) {
|
||||
String key = getPresenceMapKey(user);
|
||||
Map userPresences = (Map)presenceMap.get(key);
|
||||
Map<String, Presence> userPresences = presenceMap.get(key);
|
||||
if (userPresences == null) {
|
||||
Presence presence = new Presence(Presence.Type.unavailable);
|
||||
presence.setFrom(user);
|
||||
|
@ -206,7 +206,7 @@ public class AgentRoster {
|
|||
else {
|
||||
// Find the resource with the highest priority
|
||||
// Might be changed to use the resource with the highest availability instead.
|
||||
Iterator it = userPresences.keySet().iterator();
|
||||
Iterator<String> it = userPresences.keySet().iterator();
|
||||
Presence p;
|
||||
Presence presence = null;
|
||||
|
||||
|
@ -303,14 +303,14 @@ public class AgentRoster {
|
|||
else if (!workgroupJID.equals(agentStatus.getWorkgroupJID())) {
|
||||
return;
|
||||
}
|
||||
Map userPresences;
|
||||
Map<String, Presence> userPresences;
|
||||
// Get the user presence map
|
||||
if (presenceMap.get(key) == null) {
|
||||
userPresences = new HashMap();
|
||||
userPresences = new HashMap<String, Presence>();
|
||||
presenceMap.put(key, userPresences);
|
||||
}
|
||||
else {
|
||||
userPresences = (Map)presenceMap.get(key);
|
||||
userPresences = presenceMap.get(key);
|
||||
}
|
||||
// Add the new presence, using the resources as a key.
|
||||
synchronized (userPresences) {
|
||||
|
@ -329,7 +329,7 @@ public class AgentRoster {
|
|||
// If an "unavailable" packet, remove any entries in the presence map.
|
||||
else if (presence.getType() == Presence.Type.unavailable) {
|
||||
if (presenceMap.get(key) != null) {
|
||||
Map userPresences = (Map)presenceMap.get(key);
|
||||
Map<String,Presence> userPresences = presenceMap.get(key);
|
||||
synchronized (userPresences) {
|
||||
userPresences.remove(StringUtils.parseResource(from));
|
||||
}
|
||||
|
@ -339,7 +339,7 @@ public class AgentRoster {
|
|||
}
|
||||
// Fire an event.
|
||||
synchronized (entries) {
|
||||
for (Iterator i = entries.iterator(); i.hasNext();) {
|
||||
for (Iterator<String> i = entries.iterator(); i.hasNext();) {
|
||||
String entry = (String)i.next();
|
||||
if (entry.toLowerCase().equals(StringUtils.parseBareAddress(key).toLowerCase())) {
|
||||
fireEvent(EVENT_PRESENCE_CHANGED, packet);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue