Option.java

 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}