Package tigase.xml

Examples of tigase.xml.Element


  private static void dynamicGetRequest(Packet packet,
          XMPPResourceConnection session,
          Queue<Packet> results,
          Map<String, Object> settings) throws NotAuthorizedException {
    Element request = packet.getElement();
    Element item = request.findChild("/iq/query/item");
    if (item != null) {
      Element new_item = DynamicRoster.getItemExtraData(session, settings, item);
      if (new_item == null) {
        new_item = item;
      }
      results.offer(packet.okResult(new_item, 1));
    } else {
View Full Code Here


  private static void dynamicSetRequest(Packet packet,
          XMPPResourceConnection session,
          Queue<Packet> results,
          Map<String, Object> settings) {
    Element request = packet.getElement();
    List<Element> items = request.getChildren("/iq/query");
    if (items != null && items.size() > 0) {
      for (Element item : items) {
        DynamicRoster.setItemExtraData(session, settings, item);
      }
      results.offer(packet.okResult((String) null, 0));
View Full Code Here

  private static void processSetRequest(final Packet packet,
    final XMPPResourceConnection session,  final Queue<Packet> results)
    throws NotAuthorizedException, TigaseDBException {

    Element request = packet.getElement();

    String buddy =
      JIDUtils.getNodeID(request.getAttribute("/iq/query/item", "jid"));
    Element item =  request.findChild("/iq/query/item");
    String subscription = item.getAttribute("subscription");
    if (subscription != null && subscription.equals("remove")) {
      SubscriptionType sub = roster_util.getBuddySubscription(session, buddy);
      if (sub == null) {
        sub = SubscriptionType.none;
      }
      String type = request.getAttribute("/iq/query/item", "type");
      if (sub != SubscriptionType.none && (type == null || !type.equals(ANON))) {
        Element pres = new Element("presence");
        pres.setAttribute("to", buddy);
        pres.setAttribute("from", session.getUserId());
        pres.setAttribute("type", "unsubscribe");
        results.offer(new Packet(pres));
        pres = new Element("presence");
        pres.setAttribute("to", buddy);
        pres.setAttribute("from", session.getUserId());
        pres.setAttribute("type", "unsubscribed");
        results.offer(new Packet(pres));
        pres = new Element("presence");
        pres.setAttribute("to", buddy);
        pres.setAttribute("from", session.getJID());
        pres.setAttribute("type", "unavailable");
        results.offer(new Packet(pres));
      }
      // It happens sometimes that the client still think the buddy
      // is in the roster while he isn't. In such a case just ensure the
      // client that the buddy has been removed for sure
      Element it = new Element("item");
      it.setAttribute("jid", buddy);
      it.setAttribute("subscription", "remove");
      roster_util.updateBuddyChange(session, results, it);
      roster_util.removeBuddy(session, buddy);
      results.offer(packet.okResult((String)null, 0));
    } else {
      String name = request.getAttribute("/iq/query/item", "name");
//       if (name == null) {
//         name = buddy;
//       } // end of if (name == null)
      List<Element> groups = item.getChildren();
      String[] gr = null;
      if (groups != null && groups.size() > 0) {
        gr = new String[groups.size()];
        int cnt = 0;
        for (Element group : groups) {
          gr[cnt++] = (group.getCData() == null ? "" : group.getCData());
        } // end of for (ElementData group : groups)
      }
      //roster_util.setBuddyGroups(session, buddy, gr);
      roster_util.addBuddy(session, buddy, name, gr);
      String type = request.getAttribute("/iq/query/item", "type");
      if (type != null && type.equals(ANON)) {
        roster_util.setBuddySubscription(session, SubscriptionType.both, buddy);
        Element pres = (Element)session.getSessionData(Presence.PRESENCE_KEY);
        if (pres == null) {
          pres = new Element("presence");
        } else {
          pres = pres.clone();
        }
        pres.setAttribute("to", buddy);
        pres.setAttribute("from", session.getJID());
        results.offer(new Packet(pres));
      }
      if (roster_util.getBuddySubscription(session, buddy) == null) {
        roster_util.setBuddySubscription(session, SubscriptionType.none, buddy);
      } // end of if (getBuddySubscription(session, buddy) == null)
View Full Code Here

    final XMPPResourceConnection session,  final Queue<Packet> results,
    final Map<String, Object> settings)
    throws NotAuthorizedException, TigaseDBException {
    String[] buddies = roster_util.getBuddies(session);
    if (buddies != null) {
      Element query = new Element("query");
      query.setXMLNS(XMLNS);
      for (String buddy : buddies) {
         try {
          Element buddy_item = roster_util.getBuddyItem(session, buddy);
          String item_group = buddy_item.getCData("/item/group");
          query.addChild(buddy_item);
        } catch (TigaseDBException e) {
          // It happens that some weird JIDs drive database crazy and
          // it throws exceptions. Let's for now just ignore those
          // contacts....
          log.info("Can not retrieve data for contact: " + buddy
            + ", an exception occurs: " + e);
        }
      }
      if (query.getChildren() != null && query.getChildren().size() > 0) {
        results.offer(packet.okResult(query, 0));
      } else {
        results.offer(packet.okResult((String)null, 1));
      } // end of if (buddies != null) else
    } else {
      results.offer(packet.okResult((String)null, 1));
    }
    List<Element> its = DynamicRoster.getRosterItems(session, settings);
    if (its != null) {
      LinkedList<Element> items = new LinkedList<Element>(its);
      while (items.size() > 0) {
        Element iq = new Element("iq",
          new String[] {"type", "id", "to"},
          new String[] {"set", "dr-"+items.size(), session.getJID()});
        Element query = new Element("query");
        query.setXMLNS(XMLNS);
        iq.addChild(query);
        query.addChild(items.poll());
        while (query.getChildren().size() < 20 && items.size() > 0) {
          query.addChild(items.poll());
        }
        Packet rost_res = new Packet(iq);
        rost_res.setTo(session.getConnectionId());
        rost_res.setFrom(packet.getTo());
        results.offer(rost_res);
View Full Code Here

    SubscriptionType subscr = getBuddySubscription(session, buddy);
    if (subscr == null) {
      subscr = SubscriptionType.none;
      setBuddySubscription(session, subscr, buddy);
    } // end of if
    Element item = new Element("item");
    item.setAttribute("jid", JIDUtils.getNodeID(buddy));
    item.addAttributes(subscr.getSubscriptionAttr());
    String name = getBuddyName(session, buddy);
    if (name != null) {
      item.setAttribute("name", XMLUtils.escape(name));
    }
    String[] groups = getBuddyGroups(session, buddy);
    if (groups != null) {
      for (String gr : groups) {
        Element group = new Element("group");
        group.setCData(XMLUtils.escape(gr));
        item.addChild(group);
      } // end of for ()
    } // end of if-else
    return item;
  }
View Full Code Here

  }

  public void updateBuddyChange(final XMPPResourceConnection session,
    final Queue<Packet> results, final Element item)
    throws NotAuthorizedException, TigaseDBException {
    Element update = new Element("iq");
    update.setAttribute("type", StanzaType.set.toString());
    Element query = new Element("query");
    query.setXMLNS(ROSTER_XMLNS);
    query.addChild(item);
    update.addChild(query);
    for (XMPPResourceConnection conn: session.getActiveSessions()) {
      Element conn_update = update.clone();
      conn_update.setAttribute("to", conn.getJID());
      conn_update.setAttribute("id", "rst"+session.nextStanzaId());
      Packet pack_update = new Packet(conn_update);
      pack_update.setTo(conn.getConnectionId());
      pack_update.setFrom(session.getJID());
      results.offer(pack_update);
    } // end of for (XMPPResourceConnection conn: sessions)
View Full Code Here

      String id = JIDUtils.getNodeID(packet.getElemTo());

      if (id.equals(session.getUserId())) {
        // Yes this is message to 'this' client
        Element elem = packet.getElement().clone();
        Packet result = new Packet(elem);
        result.setTo(session.getConnectionId());
        result.setFrom(packet.getTo());
        results.offer(result);
      } else {
        // This is message to some other client
        Element result = packet.getElement().clone();
        results.offer(new Packet(result));
      } // end of else
    } catch (NotAuthorizedException e) {
      log.warning("NotAuthorizedException for packet: "  + packet.getStringData());
      results.offer(Authorization.NOT_AUTHORIZED.getResponseMessage(packet,
View Full Code Here

  }

  public static void setActiveList(XMPPResourceConnection session, String lName)
    throws NotAuthorizedException, TigaseDBException {
    if (lName != null) {
      Element list = getList(session, lName);
      session.putSessionData(ACTIVE, list);
    } else {
      session.putSessionData(ACTIVE, null);
    }
  }
View Full Code Here

    return (Element)session.getSessionData(ACTIVE);
  }

  public static String getActiveListName(XMPPResourceConnection session)
    throws NotAuthorizedException {
    Element list = getActiveList(session);
    if (list != null) {
      return list.getAttribute(NAME);
    } else {
      return null;
    } // end of if (list != null) else
  }
View Full Code Here

    if (list_str != null && !list_str.isEmpty()) {
      SimpleParser parser = SingletonFactory.getParserInstance();
      DomBuilderHandler domHandler = new DomBuilderHandler();
      parser.parse(domHandler, list_str.toCharArray(), 0, list_str.length());
      Queue<Element> elems = domHandler.getParsedElements();
      Element result = elems.poll();
      log.finest("Loaded privacy list: " + result.toString());
      return result;
    } else {
      return getListOld(session, list);
    }
  }
View Full Code Here

TOP

Related Classes of tigase.xml.Element

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.