Search in sources :

Example 6 with Registration

use of org.jivesoftware.smack.packet.Registration in project ecf by eclipse.

the class AccountManager method deleteAccount.

/**
 * Deletes the currently logged-in account from the server. This operation can only
 * be performed after a successful login operation has been completed. Not all servers
 * support deleting accounts; an XMPPException will be thrown when that is the case.
 *
 * @throws IllegalStateException if not currently logged-in to the server.
 * @throws XMPPException if an error occurs when deleting the account.
 */
public void deleteAccount() throws XMPPException {
    if (!connection.isAuthenticated()) {
        throw new IllegalStateException("Must be logged in to delete a account.");
    }
    Registration reg = new Registration();
    reg.setType(IQ.Type.SET);
    reg.setTo(connection.getServiceName());
    Map<String, String> attributes = new HashMap<String, String>();
    // To delete an account, we add a single attribute, "remove", that is blank.
    attributes.put("remove", "");
    reg.setAttributes(attributes);
    PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), new PacketTypeFilter(IQ.class));
    PacketCollector collector = connection.createPacketCollector(filter);
    connection.sendPacket(reg);
    IQ result = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
    // Stop queuing results
    collector.cancel();
    if (result == null) {
        throw new XMPPException("No response from server.");
    } else if (result.getType() == IQ.Type.ERROR) {
        throw new XMPPException(result.getError());
    }
}
Also used : AndFilter(org.jivesoftware.smack.filter.AndFilter) PacketFilter(org.jivesoftware.smack.filter.PacketFilter) HashMap(java.util.HashMap) Registration(org.jivesoftware.smack.packet.Registration) IQ(org.jivesoftware.smack.packet.IQ) PacketTypeFilter(org.jivesoftware.smack.filter.PacketTypeFilter) PacketIDFilter(org.jivesoftware.smack.filter.PacketIDFilter)

Example 7 with Registration

use of org.jivesoftware.smack.packet.Registration in project ecf by eclipse.

the class PacketParserUtils method parseRegistration.

private static Registration parseRegistration(XmlPullParser parser) throws Exception {
    Registration registration = new Registration();
    Map<String, String> fields = null;
    boolean done = false;
    while (!done) {
        int eventType = parser.next();
        if (eventType == XmlPullParser.START_TAG) {
            // attempt to parse it if it's in the form <name>value</name>.
            if (parser.getNamespace().equals("jabber:iq:register")) {
                String name = parser.getName();
                String value = "";
                if (fields == null) {
                    fields = new HashMap<String, String>();
                }
                if (parser.next() == XmlPullParser.TEXT) {
                    value = parser.getText();
                }
                // Ignore instructions, but anything else should be added to the map.
                if (!name.equals("instructions")) {
                    fields.put(name, value);
                } else {
                    registration.setInstructions(value);
                }
            } else // Otherwise, it must be a packet extension.
            {
                registration.addExtension(PacketParserUtils.parsePacketExtension(parser.getName(), parser.getNamespace(), parser));
            }
        } else if (eventType == XmlPullParser.END_TAG) {
            if (parser.getName().equals("query")) {
                done = true;
            }
        }
    }
    registration.setAttributes(fields);
    return registration;
}
Also used : Registration(org.jivesoftware.smack.packet.Registration)

Aggregations

Registration (org.jivesoftware.smack.packet.Registration)7 AndFilter (org.jivesoftware.smack.filter.AndFilter)6 PacketFilter (org.jivesoftware.smack.filter.PacketFilter)6 PacketIDFilter (org.jivesoftware.smack.filter.PacketIDFilter)6 PacketTypeFilter (org.jivesoftware.smack.filter.PacketTypeFilter)6 IQ (org.jivesoftware.smack.packet.IQ)6 HashMap (java.util.HashMap)2 PacketCollector (org.jivesoftware.smack.PacketCollector)2 XMPPException (org.jivesoftware.smack.XMPPException)2