/** * <code>delRosterItem</code> deletes a roster item. The rosterItem can be taken directly from a * valid Roster Extension object. * * <p>The server will respond to this, at which time any registered RosterListener interfaces will * be notified via a 'changed' type event. * * @param ri a <code>RosterItem</code> to delete * @exception InstantiationException if there is an error building objects, this may be removed * later, after debugging. */ public synchronized void delRosterItem(RosterItem ri) throws InstantiationException { // create builder if not used before. if (IQBuilder == null) IQBuilder = new InfoQueryBuilder(); else // we have used this builder before - make sure it is clean. IQBuilder.reset(); IQBuilder.setType("set"); if (rosterBuilder == null) rosterBuilder = new RosterBuilder(); else rosterBuilder.reset(); if (rosterItemBuilder == null) rosterItemBuilder = new RosterItemBuilder(); else // we have used this builder before - make sure it is clean. rosterItemBuilder.reset(); // copy existing roster item rosterItemBuilder.copyItem(ri); // change subscription type to 'remove' to tell the server to delete the // item rosterItemBuilder.setSubscriptionType("remove"); // this should never throw an exception, since we are based on // the original roster item. rosterBuilder.addRosterItem(rosterItemBuilder.build()); // this should never throw an exception, because we added the // roster item above first IQBuilder.addExtension(rosterBuilder.build()); // this also should just work. connection.send((InfoQuery) IQBuilder.build()); }
/** * <code>refreshRoster</code> does a complete reload of the user roster. * * @exception InstantiationException should never be thrown (may be removed after this is proven * to be true) */ public void refreshRoster() throws InstantiationException { // create builder if not used before. if (IQBuilder == null) IQBuilder = new InfoQueryBuilder(); else // we have used this builder before - make sure it is clean. IQBuilder.reset(); IQBuilder.setType("get"); if (rosterBuilder == null) rosterBuilder = new RosterBuilder(); else rosterBuilder.reset(); // this should never throw an exception IQBuilder.addExtension(rosterBuilder.build()); // build and send out over the interface connection.send((InfoQuery) IQBuilder.build()); }
/** * <code>addRosterItem</code> adds one precreated roster item to the roster, as stored on the * server. A response will be sent by the server, which will trigger a changed event on any * registered RosterListener interface. * * @param ri a <code>RosterItem</code> object to add * @exception InstantiationException if the build processes fail - this may be removed after * debugging. */ public synchronized void addRosterItem(RosterItem ri) throws InstantiationException { // create builder if not used before. if (IQBuilder == null) IQBuilder = new InfoQueryBuilder(); else // we have used this builder before - make sure it is clean. IQBuilder.reset(); IQBuilder.setType("set"); if (rosterBuilder == null) rosterBuilder = new RosterBuilder(); else rosterBuilder.reset(); rosterBuilder.addRosterItem(ri); // this should never throw an exception, because we added the // roster item above first IQBuilder.addExtension(rosterBuilder.build()); // this also should just work. connection.send((InfoQuery) IQBuilder.build()); }