Package rocks.xmpp.extensions.rosterx.model

Examples of rocks.xmpp.extensions.rosterx.model.ContactExchange


        xmppSession.addMessageListener(new MessageListener() {
            @Override
            public void handle(MessageEvent e) {
                if (e.isIncoming() && isEnabled()) {
                    Message message = e.getMessage();
                    ContactExchange contactExchange = message.getExtension(ContactExchange.class);
                    if (contactExchange != null) {
                        List<ContactExchange.Item> items = getItemsToProcess(contactExchange.getItems());
                        if (!items.isEmpty()) {
                            Date date;
                            DelayedDelivery delayedDelivery = message.getExtension(DelayedDelivery.class);
                            if (delayedDelivery != null) {
                                date = delayedDelivery.getTimeStamp();
                            } else {
                                date = new Date();
                            }
                            processItems(items, message.getFrom(), message.getBody(), date);
                        }
                    }
                }
            }
        });

        xmppSession.addIQListener(new IQListener() {
            @Override
            public void handle(IQEvent e) {
                IQ iq = e.getIQ();
                if (e.isIncoming() && isEnabled() && !e.isConsumed() && iq.getType() == IQ.Type.SET) {
                    ContactExchange contactExchange = iq.getExtension(ContactExchange.class);
                    if (contactExchange != null) {
                        if (xmppSession.getRosterManager().getContact(iq.getFrom().asBareJid()) == null) {
                            // If the receiving entity will not process the suggested action(s) because the sending entity is not in the receiving entity's roster, the receiving entity MUST return an error to the sending entity, which error SHOULD be <not-authorized/>.
                            xmppSession.send(iq.createError(new StanzaError(new NotAuthorized())));
                        } else {
                            List<ContactExchange.Item> items = getItemsToProcess(contactExchange.getItems());
                            if (!items.isEmpty()) {
                                processItems(items, iq.getFrom(), null, new Date());
                            }
                            xmppSession.send(iq.createResult());
                        }
View Full Code Here


        // Only support adding contacts for now:
        // However, if the sender is a human user and/or the sending application has a primary Service Discovery category of "client" (e.g., a bot) [10], the sending application SHOULD NOT specify an 'action' attribute other than "add"

        if (contacts.length > 0) {
            ContactExchange contactExchange = new ContactExchange();
            for (Contact contact : contacts) {
                if (contact.getJid() == null) {
                    // ... MUST possess a 'jid' attribute that specifies the JabberID of the item to be added
                    throw new IllegalArgumentException("Contact contains no JID.");
                }
                ContactExchange.Item rosterItem = new ContactExchange.Item(contact.getJid(), contact.getName(), contact.getGroups(), ContactExchange.Item.Action.ADD);
                contactExchange.getItems().add(rosterItem);
            }
            // http://xmpp.org/extensions/xep-0144.html#stanza
            Presence presence = xmppSession.getPresenceManager().getPresence(jid);
            if (presence.isAvailable()) {
                xmppSession.query(new IQ(presence.getFrom(), IQ.Type.SET, contactExchange));
View Full Code Here

                "    </item>\n" +
                "  </x>\n" +
                "</message>\n";

        Message message = unmarshal(xml, Message.class);
        ContactExchange contactExchange = message.getExtension(ContactExchange.class);
        Assert.assertNotNull(contactExchange);
        Assert.assertEquals(contactExchange.getItems().size(), 3);
        Assert.assertEquals(contactExchange.getItems().get(0).getJid(), Jid.valueOf("rosencrantz@denmark.lit"));
        Assert.assertEquals(contactExchange.getItems().get(0).getAction(), ContactExchange.Item.Action.ADD);
        Assert.assertEquals(contactExchange.getItems().get(0).getName(), "Rosencrantz");
        Assert.assertEquals(contactExchange.getItems().get(0).getGroups().size(), 1);
        Assert.assertEquals(contactExchange.getItems().get(0).getGroups().get(0), "Visitors");
        Assert.assertEquals(contactExchange.getItems().get(1).getJid(), Jid.valueOf("guildenstern@denmark.lit"));
        Assert.assertEquals(contactExchange.getItems().get(1).getAction(), ContactExchange.Item.Action.DELETE);
        Assert.assertEquals(contactExchange.getItems().get(1).getName(), "Guildenstern");
        Assert.assertEquals(contactExchange.getItems().get(1).getGroups().size(), 1);
        Assert.assertEquals(contactExchange.getItems().get(1).getGroups().get(0), "Visitors");
        Assert.assertEquals(contactExchange.getItems().get(2).getJid(), Jid.valueOf("rosencrantz@denmark.lit"));
        Assert.assertEquals(contactExchange.getItems().get(2).getAction(), ContactExchange.Item.Action.MODIFY);
        Assert.assertEquals(contactExchange.getItems().get(2).getName(), "Rosencrantz");
        Assert.assertEquals(contactExchange.getItems().get(2).getGroups().size(), 1);
        Assert.assertEquals(contactExchange.getItems().get(2).getGroups().get(0), "Retinue");
    }
View Full Code Here

TOP

Related Classes of rocks.xmpp.extensions.rosterx.model.ContactExchange

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.