ru.bitel.bgbilling.plugins.cashcheck.server.bean

## Class PrinterManager

- java.lang.Object
- - ru.bitel.bgbilling.plugins.cashcheck.server.bean.PrinterManager

-     public class PrinterManager
      extends java.lang.Object

  Класс, предоставляющий доступ к информации о принтерах (из конфига), парсящий её, управляющий авторизацией и логинами на принтер и т.д.
  Author:
    dimon

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PrinterManager(ru.bitel.bgbilling.kernel.plugin.server.BGPluginServer plugin, DataMap<java.lang.String,java.lang.Object> rootNode)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getCurrentRegistratorId()` Номер залогиненного регистратора.
    `static java.lang.String` | `getCurrentRegistratorPassword()` Текущий пароль залогиненного юзера в регистратор.
    `Printer` | `getPrinter()` Возвращает текущий выбранный принтер.
    `java.util.Map<java.lang.Integer,Printer>` | `getPrinterMap()` Мэп принтеров, парсится конфиг плагинов.
    `java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>>` | `getPtMap()` Возвращает Мэпинг типов платежей на регистраторы.
    `java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>>` | `getRegistratorPtMap()` Платежи регистраторов.
    `static void` | `resetCache()`
    `void` | `setCurrentRegistrator(int registratorId, java.lang.String password)` Запись в сессию ИД регистратора, на котором пользователь залогинен.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PrinterManager

          public PrinterManager(ru.bitel.bgbilling.kernel.plugin.server.BGPluginServer plugin,
                                DataMap<java.lang.String,java.lang.Object> rootNode)

  - ### Method Detail

    - #### getPrinterMap

          public java.util.Map<java.lang.Integer,Printer> getPrinterMap()

      Мэп принтеров, парсится конфиг плагинов.
      Returns:
        Неупорядоченный Мэп(номер_регистратора=>Printer) объектов Printer

    - #### getPtMap

          public java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>> getPtMap()

      Возвращает Мэпинг типов платежей на регистраторы.
      Returns:
        тип_платежа=>[список номеров_регистраторов], всегда не null.

    - #### getRegistratorPtMap

          public java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>> getRegistratorPtMap()

      Платежи регистраторов. Мэп обратный getPtMap().
      Returns:
        мэп: номер_регистратора => [список типов платежей]. Pt выбираются из существующего getPtMap().

    - #### setCurrentRegistrator

          public void setCurrentRegistrator(int registratorId,
                                            java.lang.String password)

      Запись в сессию ИД регистратора, на котором пользователь залогинен. И пароля пользователя. Передаём 0 - это значит мы разлогиниваемся. Также здесь в выходную xml устанавливается аттрибут "registratorId" - ид текущего регистратора или 0 если нет логина, см. каммент к методу getCurrentRegistratorId().
      Parameters:
        `registratorId` - номер регистратора в системе.
        `password` - пароль введённый.

    - #### getCurrentRegistratorId

          public int getCurrentRegistratorId()

      Номер залогиненного регистратора. Также здесь в выходную xml устанавливается аттрибут "registratorId" - ид текущего регистратора или 0 если нет логина, это много где используется. Например, вместо "selected" при возвращении списка ActionRegistratorList, или вместо старого параметра "isnotlogin", который мы иногда проверяем в клиенте, чтобы понять что для действия надо залогиниться и показать диалог со вводом принтера и пароля к нему. В итоге во всех экшенах мы имеем автоматом этот параметр в rootNode, потому что во всех мы запрашиваем getCurrentRegistratorId или getPrinter, если не напрашиваем, то можно будет просто насильно вызвать этот метод и оно положится.
      Returns:
        номер регистратора, или 0 если не выбран регистратор.

    - #### getCurrentRegistratorPassword

          public static java.lang.String getCurrentRegistratorPassword()

      Текущий пароль залогиненного юзера в регистратор. Используется при отправке команды на удалённый сервер печати.
      Returns:
        строка-пароль

    - #### getPrinter

          public Printer getPrinter()
                             throws BGPrinterNotloggedMessageException,
                                    ru.bitel.bgbilling.common.BGException

      Возвращает текущий выбранный принтер. Если не выбран текущий - бросается экзепшен с ошибкой. Не настроен - тоже. Используется в экшенах с действиями к принтеру, в остальных (запрос очереди итд) может использоваться getCurrentRegistratorId() отдельно. Внимание - это просто объект из мэпа настроек, никакого коннекта если не найден принтер - не происходит. Это метод для вынесения части кода в общий метод, он делает некие побочные действия, например, ставит текущий printerId в "реквест" итд.
      Returns:
        экземпляр объекта "текущий принтер на который вошли", всегда не null. при любом казусе (незалогинен, ненастроен) бросается экзепшен.
      Throws:
        `BGPrinterNotloggedMessageException` - незалогинен, по нему можно отличить необходимость войти
        `ru.bitel.bgbilling.common.BGException` - остальные ошибки, например, ненастроеный принтер.

    - #### resetCache

          public static void resetCache()