1package eu.siacs.conversations.xmpp;
2
3import java.util.ArrayList;
4import java.util.List;
5import eu.siacs.conversations.xml.Element;
6
7public class Option {
8 protected final String value;
9 protected final String label;
10
11 public static List<Option> forField(Element field) {
12 List<Option> options = new ArrayList<>();
13 for (Element el : field.getChildren()) {
14 if (!el.getNamespace().equals("jabber:x:data")) continue;
15 if (!el.getName().equals("option")) continue;
16 options.add(new Option(el));
17 }
18 return options;
19 }
20
21 public Option(final Element option) {
22 this(option.findChildContent("value", "jabber:x:data"), option.getAttribute("label"));
23 }
24
25 public Option(final String value, final String label) {
26 this.value = value;
27 this.label = label == null ? value : label;
28 }
29
30 public boolean equals(Object o) {
31 if (!(o instanceof Option)) return false;
32
33 if (value == ((Option) o).value) return true;
34 if (value == null || ((Option) o).value == null) return false;
35 return value.equals(((Option) o).value);
36 }
37
38 public String toString() { return label; }
39
40 public String getValue() { return value; }
41}