NickValidityChecker.java

 1package eu.siacs.conversations.utils;
 2
 3import java.util.HashSet;
 4import java.util.List;
 5import java.util.Set;
 6
 7import eu.siacs.conversations.entities.Conversation;
 8import eu.siacs.conversations.xmpp.jid.InvalidJidException;
 9import eu.siacs.conversations.xmpp.jid.Jid;
10
11public class NickValidityChecker {
12
13    private static boolean check(final Conversation conversation, final String nick) {
14        Jid room = conversation.getJid();
15        try {
16            Jid full = Jid.fromParts(room.getLocalpart(), room.getDomainpart(), nick);
17            return conversation.hasMessageWithCounterpart(full)
18                    || conversation.getMucOptions().findUserByFullJid(full) != null;
19        } catch (InvalidJidException e) {
20            return false;
21        }
22    }
23
24    public static boolean check(final Conversation conversation, final List<String> nicks) {
25        Set<String> previousNicks = new HashSet<>(nicks);
26        for(String previousNick : previousNicks) {
27            if (!NickValidityChecker.check(conversation,previousNick)) {
28                return false;
29            }
30        }
31        return true;
32    }
33}