Package ru.bitel.bgbilling.plugins.im.common

# 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`
  `IMUtils.MessageComparator`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IMUtils()`

- ## 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`
  `getJIDResource(String jid)`
  Возвращает ресурс (часть строки после первого '/'), или null строку если его нет (нету '/').
  `static String`
  `getLoginFromJID(String jid)`
  Возвращает логин из JIDа, то есть часть до @
  `static String`
  `getPureJID(String jid)`
  Очищает 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`