diff --git a/src/net/java/sip/communicator/impl/protocol/irc/ChatRoomIrcImpl.java b/src/net/java/sip/communicator/impl/protocol/irc/ChatRoomIrcImpl.java index 1bb01da5a..81b0528a7 100644 --- a/src/net/java/sip/communicator/impl/protocol/irc/ChatRoomIrcImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/irc/ChatRoomIrcImpl.java @@ -28,7 +28,7 @@ public class ChatRoomIrcImpl /** * The object used for logging. */ - private static final Logger logger + private static final Logger LOGGER = Logger.getLogger(ChatRoomIrcImpl.class); /** @@ -982,8 +982,8 @@ public void fireMemberPresenceEvent(ChatRoomMember member, evt = new ChatRoomMemberPresenceChangeEvent( this, member, eventID, eventReason); - if (logger.isTraceEnabled()) - logger.trace("Will dispatch the following ChatRoom event: " + evt); + if (LOGGER.isTraceEnabled()) + LOGGER.trace("Will dispatch the following ChatRoom event: " + evt); Iterable listeners; synchronized (memberListeners) @@ -1016,8 +1016,8 @@ public void fireMemberRoleEvent( ChatRoomMember member, previousRole, newRole); - if (logger.isTraceEnabled()) - logger.trace("Will dispatch the following ChatRoom event: " + evt); + if (LOGGER.isTraceEnabled()) + LOGGER.trace("Will dispatch the following ChatRoom event: " + evt); Iterable listeners; synchronized (memberRoleListeners) @@ -1253,8 +1253,9 @@ public ConferenceDescription publishConference(ConferenceDescription cd, @Override public Contact getPrivateContactByNickname(String name) { + LOGGER.debug("Getting private contact for nick name '" + name + "'."); return this.parentProvider.getPersistentPresence() - .findContactByID(name); + .findOrCreateContactByID(name); } /** diff --git a/src/net/java/sip/communicator/impl/protocol/irc/ContactIrcImpl.java b/src/net/java/sip/communicator/impl/protocol/irc/ContactIrcImpl.java index 2b1c00e74..8d2c29934 100644 --- a/src/net/java/sip/communicator/impl/protocol/irc/ContactIrcImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/irc/ContactIrcImpl.java @@ -119,6 +119,8 @@ public ProtocolProviderService getProtocolProvider() @Override public boolean isPersistent() { + // TODO implement notion of persistence based on whether or not the nick + // name is registered on the IRC network, for NickServ. return false; } @@ -130,6 +132,10 @@ public boolean isPersistent() @Override public boolean isResolved() { + // TODO implement resolved status based on whether or not the nick name + // is registered and the nick is currently "active" according to the + // server, i.e. NickServ. + // For now, we consider the contact unresolved ... return false; } @@ -141,6 +147,8 @@ public boolean isResolved() @Override public String getPersistentData() { + // TODO this could retrieve some whois/contact data from NickServ, since + // the "persistent contact" is registered. return null; } diff --git a/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java b/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java index 2a483567a..ce224305b 100644 --- a/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java +++ b/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java @@ -835,10 +835,10 @@ private void prepareChatRoom(final ChatRoomIrcImpl chatRoom, for (IRCUser user : channel.getUsers()) { - ChatRoomMemberRole role = ChatRoomMemberRole.SILENT_MEMBER; ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(this.provider, chatRoom, - user.getNick(), role); + user.getNick(), ChatRoomMemberRole.SILENT_MEMBER); + ChatRoomMemberRole role; for (IRCUserStatus status : channel.getStatusesForUser(user)) { role = convertMemberMode(status.getChanModeType().charValue()); diff --git a/src/net/java/sip/communicator/impl/protocol/irc/OperationSetPersistentPresenceIrcImpl.java b/src/net/java/sip/communicator/impl/protocol/irc/OperationSetPersistentPresenceIrcImpl.java index 9560b6e62..a209bc559 100644 --- a/src/net/java/sip/communicator/impl/protocol/irc/OperationSetPersistentPresenceIrcImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/irc/OperationSetPersistentPresenceIrcImpl.java @@ -162,6 +162,9 @@ public void moveContactToGroup(Contact contactToMove, ContactGroup newParent) @Override public ContactGroup getServerStoredContactListRoot() { + // TODO consider using this for contacts that are registered at NickServ + // for the IRC network. Store contacts and possibly some whois info if + // useful for these contacts as persistent data. return this.rootGroup; } @@ -223,8 +226,7 @@ public PresenceStatus queryContactStatus(String contactIdentifier) @Override public Contact findContactByID(String contactID) { - // FIXME DEBUG - LOGGER.warn("findContactByID(\"" + contactID + "\") called"); + LOGGER.trace("Finding contact for nick name '" + contactID + "'"); if (contactID == null) return null; Contact contact = this.rootGroup.getContact(contactID); @@ -238,8 +240,8 @@ public Contact findContactByID(String contactID) if (contact != null) return contact; } - // FIXME currently just creates a new volatile contact - return createVolatileContact(contactID); + LOGGER.trace("No contact found for nick name '" + contactID + "'"); + return null; } @Override @@ -261,4 +263,16 @@ public Contact createUnresolvedContact(String address, String persistentData) { return null; } + + Contact findOrCreateContactByID(String name) + { + Contact contact = findContactByID(name); + if (contact == null) + { + contact = createVolatileContact(name); + LOGGER.debug("No existing contact found. Created volatile contact" + + " for nick name '" + name + "'."); + } + return contact; + } }