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}