/** * Adds found result to the query results. * * @param room the chat room. * @param addQueryResult indicates whether we should add the chat room to the query results or * fire an event without adding it to the results. * @param isAutoJoin the auto join state of the contact. */ private void addChatRoom(ChatRoom room, boolean addQueryResult, boolean isAutoJoin) { if (queryString == null || ((room.getName().contains(queryString) || room.getIdentifier().contains(queryString)))) { ChatRoomSourceContact contact = new ChatRoomSourceContact(room, this, isAutoJoin); synchronized (contactResults) { contactResults.add(contact); } if (addQueryResult) { addQueryResult(contact, false); } else { fireContactReceived(contact, false); } } }
/** * Test equality of contact to chat room. This test recognizes that chat rooms may have equal * names but connected to different accounts. * * @param contact the contact * @param chatRoom the chat room * @return returns <tt>true</tt> if they are equal, or <tt>false</tt> if they are different */ private boolean contactEqualsChatRoom( final ChatRoomSourceContact contact, final ChatRoom chatRoom) { return contact.getProvider() == chatRoom.getParentProvider() && chatRoom.getIdentifier().equals(contact.getContactAddress()); }