@Override public Affiliation parse(XmlPullParser parser, int initialDepth) throws Exception { 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 { throw new SmackException("Invalid affililation. Either one of 'node' or 'jid' must be set" + ". Node: " + node + ". Jid: " + jid + '.'); } return affiliation; }
@Test public void testAffiliationsExtensionToXml() throws SAXException, IOException { BareJid affiliatedJid = JidTestUtil.BARE_JID_1; Affiliation affiliation = new Affiliation(affiliatedJid, Type.member); List<Affiliation> affiliationsList = new ArrayList<>(); affiliationsList.add(affiliation); AffiliationsExtension affiliationsExtension = new AffiliationsExtension(affiliationsList, "testNode"); CharSequence xml = affiliationsExtension.toXML(null); assertXMLEqual("<affiliations node='testNode'><affiliation xmlns='http://jabber.org/protocol/pubsub#owner' jid='one@exampleone.org' affiliation='member'/></affiliations>", xml.toString()); }
new Affiliation(JidTestUtil.BARE_JID_1, Affiliation.Type.member), new Affiliation(JidTestUtil.BARE_JID_2, Affiliation.Type.publisher) ); AffiliationsExtension affiliationsExtension = new AffiliationsExtension(AffiliationNamespace.owner, affiliations);
@Override protected PacketExtension createReturnExtension(String currentElement, String currentNamespace, Map<String, String> attributeMap, List<? extends PacketExtension> content) { return new Affiliation(attributeMap.get("jid"), attributeMap.get("node"), Affiliation.Type.valueOf(attributeMap.get("affiliation"))); }
@Override protected PacketExtension createReturnExtension(String currentElement, String currentNamespace, Map<String, String> attributeMap, List<? extends PacketExtension> content) { return new Affiliation(attributeMap.get("node"), Affiliation.Type.valueOf(attributeMap.get("affiliation"))); }
@Override protected PacketExtension createReturnExtension(String currentElement, String currentNamespace, Map<String, String> attributeMap, List<? extends PacketExtension> content) { return new Affiliation(attributeMap.get("node"), Affiliation.Type.valueOf(attributeMap.get("affiliation"))); }