Class IMUtils

java.lang.Object
ru.bitel.bgbilling.plugins.im.common.IMUtils

public class IMUtils extends Object
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addMessageSort(List<ru.bitel.bgbilling.plugins.im.common.IMMessage> list, ru.bitel.bgbilling.plugins.im.common.IMMessage message)
    Добавление сообщения в список.
    static List<ru.bitel.bgbilling.plugins.im.common.IMMessage>
    cloneListAndClear(List<ru.bitel.bgbilling.plugins.im.common.IMMessage> list)
    Возвращает копию этого списка, очищая одновременно этот список.
    static String
    Возвращает ресурс (часть строки после первого '/'), или null строку если его нет (нету '/').
    static String
    Возвращает логин из JIDа, то есть часть до @
    static String
    Очищает jid от ресурса и прочего: возвращает текст до первого '/', или весь текст если не нашёл
    static ru.bitel.bgbilling.plugins.im.common.RosterRootItem
    jsonToRoster(String jsonString)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • IMUtils

      public IMUtils()
  • Method Details

    • getPureJID

      public static String getPureJID(String jid)
      Очищает jid от ресурса и прочего: возвращает текст до первого '/', или весь текст если не нашёл
      Parameters:
      jid - исходный жид в строке
      Returns:
      строка в виде user@server
    • getJIDResource

      public static String getJIDResource(String jid)
      Возвращает ресурс (часть строки после первого '/'), или null строку если его нет (нету '/').
      Parameters:
      jid - жид
      Returns:
      строка ресурса или null.
    • getLoginFromJID

      public static String getLoginFromJID(String jid)
      Возвращает логин из JIDа, то есть часть до @
      Parameters:
      jid - жид
      Returns:
      строка - логин или null если передан null или неправильный jid (то есть нету @)
    • addMessageSort

      public void addMessageSort(List<ru.bitel.bgbilling.plugins.im.common.IMMessage> list, ru.bitel.bgbilling.plugins.im.common.IMMessage message)
      Добавление сообщения в список. Сортируется и суётся куда надо, в нужное место, в соответствии с датой сообщения (по возрастанию). Список должен быть соответствующим образом ОТСОРТИРОВАН.
      Parameters:
      message - сообщение
    • cloneListAndClear

      public static List<ru.bitel.bgbilling.plugins.im.common.IMMessage> cloneListAndClear(List<ru.bitel.bgbilling.plugins.im.common.IMMessage> list)
      Возвращает копию этого списка, очищая одновременно этот список. Зачем? Вопрос интересный. Дело в том, что этот IMMessageList лежит в хеше и всё время пополняется, нам надо быстренько отсюда считать все сообщения, преобразовать в хмл и отправить клиенту. А список в кеше почистить. Но так как создание хмл и прочие операции дорого обходятся нашему брату, то между считыванием списка и очищением, то есть во время работы над списком, в него может кто то подолбиться и положить сообщение. Итог - от потерянного сообщения, до разрушения итератора, что грозит неприятностями в любом случае. Стало быть, мы быстренько снимаем со списка слепок его чистим в кеше, а потом с копией работаем себе.
      Returns:
      IMMessageList.
    • jsonToRoster

      public static ru.bitel.bgbilling.plugins.im.common.RosterRootItem jsonToRoster(String jsonString) throws Exception
      Throws:
      Exception