1package im.conversations.android.xmpp.model.muc;
 2
 3import android.util.Log;
 4import com.google.common.base.Strings;
 5import eu.siacs.conversations.Config;
 6import eu.siacs.conversations.xmpp.Jid;
 7import im.conversations.android.xmpp.model.Extension;
 8import java.util.Locale;
 9
10public abstract class Item extends Extension {
11
12    public Item(final Class<? extends Item> clazz) {
13        super(clazz);
14    }
15
16    public Affiliation getAffiliation() {
17        return affiliationOrNone(this.getAttribute("affiliation"));
18    }
19
20    public static Affiliation affiliationOrNone(final String affiliation) {
21        if (Strings.isNullOrEmpty(affiliation)) {
22            return Affiliation.NONE;
23        }
24        try {
25            return Affiliation.valueOf(affiliation.toUpperCase(Locale.ROOT));
26        } catch (final IllegalArgumentException e) {
27            return Affiliation.NONE;
28        }
29    }
30
31    public Role getRole() {
32        return roleOrNone(this.getAttribute("role"));
33    }
34
35    public static Role roleOrNone(final String role) {
36        if (Strings.isNullOrEmpty(role)) {
37            return Role.NONE;
38        }
39        try {
40            return Role.valueOf(role.toUpperCase(Locale.ROOT));
41        } catch (final IllegalArgumentException e) {
42            Log.d(Config.LOGTAG, "could not parse role " + role);
43            return Role.NONE;
44        }
45    }
46
47    public String getNick() {
48        return this.getAttribute("nick");
49    }
50
51    public Jid getJid() {
52        return this.getAttributeAsJid("jid");
53    }
54}