Search in sources :

Example 1 with AffiliationNamespace

use of org.jivesoftware.smackx.pubsub.Affiliation.AffiliationNamespace in project Smack by igniterealtime.

the class AffiliationProvider method parse.

@Override
public Affiliation parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws IOException {
    String node = parser.getAttributeValue(null, "node");
    BareJid jid = ParserUtils.getBareJidAttribute(parser);
    String namespaceString = parser.getNamespace();
    AffiliationNamespace namespace = AffiliationNamespace.fromXmlns(namespaceString);
    String affiliationString = parser.getAttributeValue(null, "affiliation");
    Affiliation.Type affiliationType = null;
    if (affiliationString != null) {
        affiliationType = Affiliation.Type.valueOf(affiliationString);
    }
    Affiliation affiliation;
    if (node != null && jid == null) {
        // affiliationType may be empty
        affiliation = new Affiliation(node, affiliationType, namespace);
    } else if (node == null && jid != null) {
        affiliation = new Affiliation(jid, affiliationType, namespace);
    } else {
        // TODO: Should be SmackParsingException.
        throw new IOException("Invalid affililation. Either one of 'node' or 'jid' must be set" + ". Node: " + node + ". Jid: " + jid + '.');
    }
    return affiliation;
}
Also used : BareJid(org.jxmpp.jid.BareJid) AffiliationNamespace(org.jivesoftware.smackx.pubsub.Affiliation.AffiliationNamespace) IOException(java.io.IOException) Affiliation(org.jivesoftware.smackx.pubsub.Affiliation)

Aggregations

IOException (java.io.IOException)1 Affiliation (org.jivesoftware.smackx.pubsub.Affiliation)1 AffiliationNamespace (org.jivesoftware.smackx.pubsub.Affiliation.AffiliationNamespace)1 BareJid (org.jxmpp.jid.BareJid)1