ru.bitel.bgbilling.modules.sorm.server.utils

## Class SormUtils

- java.lang.Object
- - ru.bitel.bgbilling.modules.sorm.server.utils.SormUtils

-     public final class SormUtils
      extends java.lang.Object

  Утильный класс, содержащий общеупотребимые методы для выгрузок СОРМ3.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `CHANGED_CONTRACT_UPLOAD_TABLE`
    `static char` | `CSV_SEPARATOR`
    `static java.lang.String` | `PARAMETER_KEY_REGION`
    `static java.lang.String` | `PARAMETER_KEY_ZONE`
    `static int` | `sormModuleId`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SormUtils()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | `checkThreeYearsAgo(java.util.Date dateTo)` Т.к. большинство поставщиков СОРМ просит данные за последние 3 года, создан метод для проверки даты
    `static boolean` | `checkValidAddress(AddressStruct address)` Проверка адреса на заполненность обязательных для СОРМа полей
    `static void` | `clearContractLogTable(java.sql.Connection con, int sormProjectId)` Чистит запись о последнем выгруженном договоре для проекта СОРМ
    `static EntityAttrAddress` | `getAddressFromDeviceAttributes(Device device)`
    `static java.util.List<Pair<java.lang.Integer,java.util.List<Pair<java.lang.String,java.lang.Integer>>>>` | `getAddressList(Preferences config, java.util.List<SormContract> contracts)` Для каждого договора формирует пары номер договора - пара, где first-идентификатор типа адреса, second-pid параметра договора для данного типа адреса
    `static java.lang.String` | `getAddressType(java.lang.String configAddressKey)` Используется для MfiSoft и SpecTeh Соотносит тип адреса из конфига с типом адреса, который должен быть указан в формировании файла для выгрузки адресов абонента
    `static java.lang.String` | `getAdminEmail(Preferences config)` Возвращает указанный email для отправки информации по ошибкам
    `static java.util.List<Bunch>` | `getBunches(Preferences config)` Возвращает список пучков оператора сохранённых в конфиге
    `static java.lang.String` | `getConnectionStandart(Preferences config)`
    `static au.com.bytecode.opencsv.CSVWriter` | `getCSVFile(java.nio.file.Path file)`
    `static au.com.bytecode.opencsv.CSVWriter` | `getCSVFile(java.nio.file.Path file, char quoteCharacter)`
    `static au.com.bytecode.opencsv.CSVWriter` | `getCSVFile(java.nio.file.Path path, java.nio.charset.Charset encoding, char quoteCharacter)`
    `static au.com.bytecode.opencsv.CSVWriter` | `getCSVFile(java.nio.file.Path path, java.nio.charset.Charset charset, char quoteCharacter, char separator)`
    `static au.com.bytecode.opencsv.CSVWriter` | `getCSVFile(java.nio.file.Path file, java.lang.String encoding)`
    `static java.util.List<DialUpLogin>` | `getDialUpLogins(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, Preferences config, java.util.List<SormContract> contracts)` Привязка договоров к логинам модуля DialUp.
    `static java.util.List<DialUpNAS>` | `getDialUpNasList(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, Preferences config, boolean isSwitches)` список nas'ов модуля dialUp для выгрузки как коммутаторов
    `static java.util.List<IdTitle>` | `getDocumentsTypes(Preferences config, ContractParameterManager cpm)` Возвращает список документов из выбранного пользователем спискового параметра договора
    `static int` | `getDocumentTypeIdOfContract(Preferences config, ContractParameterManager cpm, int cid, java.util.List<IdTitle> documentTypes)` Возвращает id типа документа для договора
    `static java.lang.String` | `getFullOperatorAddress(Preferences config)` Формирует адрес оператора одной строкой из конфигурации выгрузки
    `static java.util.List<java.lang.Integer>` | `getIdsModulesFromConfig(Preferences config, java.lang.String subKey)` Возвращает из конфига список id модулей по подключу.
    `static java.util.List<java.lang.Integer>` | `getIdsServices(Preferences config)`
    `static java.util.List<Device>` | `getInetDevices(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)` Возвращает список устройств модуля Inet для выбранных в конфиге экземпляров Inet
    `static java.util.List<InetServ>` | `getInetServices(Preferences preferences, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, java.util.List<SormContract> contractIds)`
    `static java.util.List<InternalUser>` | `getInternalUsers(java.sql.Connection connection, ObjectManager objectManager, ParamValueManager valueManager, int contractId, java.lang.String contractTitle, Preferences config)`
    `static java.lang.String[]` | `getIPGatewayItem(Device inetDevice)` Только для МФИСофт и Спец.Технологий!
    `static java.util.List<IpResource>` | `getIPResources(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)` Возвращает список ip-ресурсов для выбранных в конфиге модулей inet, за исключением тех, которые были выбраны, как не выгружаемые
    `static int` | `getLastUploadContractId(java.sql.Connection con, int sormProjectId)` Возвращает id последнего выгруженного договора для конкретного проекта выгрузки СОРМ
    `static java.util.List<java.lang.Integer>` | `getListIntegerFromConfigByKey(Preferences config, java.lang.String key)` Возвращает список(Integer) сохранённых в конфиге по переданному ключу
    `static java.util.Map<java.lang.Integer,java.util.List<InetServ>>` | `getPairsAbonentInetServices(Preferences config, java.util.List<SormContract> contracts, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)` Получение списка сервисов всех установленных модулей Inet с уникальными ip-адресами всех договоров, которые возвращает метод getContractIds
    `static java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>>` | `getPairsMidsListIds(Preferences preferences, java.lang.String subKey)` Достаёт Map по подключу из переданного конфига, где ключ-mid, value-ids для этого модуля
    `static java.lang.String` | `getParameterOfCity(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext, AddressManager addressManager, AddressStruct addressStruct, java.lang.String parameterKey)` Возвращает значение дополнительного параметра для города
    `static java.util.List<Source>` | `getPhoneSources(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext context)`
    `static java.util.List<Device>` | `getSelectedGateways(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)` Возвращает список устройств, которые выбраны, как шлюзы оператора
    `static java.util.List<java.lang.Integer>` | `getSelectedInetModulesToUpload(Preferences config)`
    `static java.util.List<ServiceSorm>` | `getSelectedServicesForUpload(Preferences config)` Возвращает список услуг, которые были выбраны пользователем для выгрузки
    `static java.util.Map<java.lang.String,java.util.List<java.lang.Integer>>` | `getTelephoneModulesIds(Preferences config)` Возвращает список выбранныз для выгрузки телефонных модулей
    `static java.util.List<SormContract>` | `getUploadContracts(java.sql.Connection con, int sormProjectId, boolean isFullUpload, Preferences config)` Получение списка id договоров, которые будут участвовать в выгрузке.
    `static java.nio.file.Path` | `getUploadFile(java.lang.String fileUploadPath, java.lang.String filePrefix, java.lang.String datePattern)` Создает новый файл на диске по заданному пути
    `static java.util.List<NumberRange>` | `getUploadPhoneNumberingResources(Preferences config, java.sql.Connection connection)` Возвращает список номеров, которые должны быть выгружены для выбранных модулей phone
    `static java.util.List<NumberRange>` | `getUploadVoiceNumberingResources(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)` Возвращает список номеров, которые должны быть выгружены для выбранных экземпляров модулей Voice
    `static java.util.List<Device>` | `getVoiceDevices(Preferences config, ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)` Возвращает список устройств модуля Voice для выбранных модулей в конфиге
    `static java.util.Map<java.lang.Integer,java.util.List<PhoneResourceSubscription>>` | `getVoiceModuleSubscriptionList(java.util.List<java.lang.Integer> voiceModules, ru.bitel.bgbilling.kernel.container.managed.ServerContext context, Preferences config)`
    `static java.lang.String` | `ip2Hex(java.lang.String ip)` Преобразование строки с ip-адресом из десятичного в шестнадцатеричное представление
    `static void` | `sendErrorToEmail(Setup setup, java.lang.Exception ex, java.lang.String subject)`
    `static void` | `sendErrorToEmail(Setup setup, java.lang.Exception ex, java.lang.String subject, java.lang.String email)` В случае возникновения любой ошибки формируется письмо, которое отправляется на почту администратору.
    `static java.lang.String` | `trimField(java.lang.String value, int length)` Обрезает строку до указанной длины.
    `static void` | `updateContractLogTable(java.sql.Connection con, int lastUploadCid, int sormProjectId)` Обновляет информацию о последнем выгруженном договоре

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

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

- - ### Field Detail

    - #### CHANGED_CONTRACT_UPLOAD_TABLE

          public static final java.lang.String CHANGED_CONTRACT_UPLOAD_TABLE

      See Also:
        Constant Field Values

    - #### PARAMETER_KEY_REGION

          public static final java.lang.String PARAMETER_KEY_REGION

      See Also:
        Constant Field Values

    - #### PARAMETER_KEY_ZONE

          public static final java.lang.String PARAMETER_KEY_ZONE

      See Also:
        Constant Field Values

    - #### CSV_SEPARATOR

          public static final char CSV_SEPARATOR

      See Also:
        Constant Field Values

    - #### sormModuleId

          public static int sormModuleId

  - ### Constructor Detail

    - #### SormUtils

          public SormUtils()

  - ### Method Detail

    - #### getUploadContracts

          public static java.util.List<SormContract> getUploadContracts(java.sql.Connection con,
                                                                        int sormProjectId,
                                                                        boolean isFullUpload,
                                                                        Preferences config)

      Получение списка id договоров, которые будут участвовать в выгрузке. Берет: 1-все договора после последнего выгруженного, если есть запись в таблице 2-все изменённые договора Критерии: договоры на которых: добавлен модуль СОРМ которые действуют или действовали последние 3 года есть один из модулей, которые были выбраны для выгрузки
      Parameters:
        `con` - - соединение с БД
        `sormProjectId` - - id проекта СОРМ для которого производится выгрузка.
        `isFullUpload` - - флаг, полная ли выгрузка базы абонентов производится или инкрементальная
        `config` - - конфигурация проекта СОРМ, в которой есть информация о выбранных для выгрузки модулей

    - #### getLastUploadContractId

          public static int getLastUploadContractId(java.sql.Connection con,
                                                    int sormProjectId)

      Возвращает id последнего выгруженного договора для конкретного проекта выгрузки СОРМ

    - #### updateContractLogTable

          public static void updateContractLogTable(java.sql.Connection con,
                                                    int lastUploadCid,
                                                    int sormProjectId)
                                             throws java.sql.SQLException

      Обновляет информацию о последнем выгруженном договоре
      Parameters:
        `lastUploadCid` - - id последнего выгруженного договора
        `sormProjectId` - - id проекта выгрузки СОРМ
      Throws:
        `java.sql.SQLException`

    - #### clearContractLogTable

          public static void clearContractLogTable(java.sql.Connection con,
                                                   int sormProjectId)
                                            throws ru.bitel.bgbilling.common.BGException

      Чистит запись о последнем выгруженном договоре для проекта СОРМ
      Parameters:
        `sormProjectId` - - id проекта СОРМ
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getPairsAbonentInetServices

          public static java.util.Map<java.lang.Integer,java.util.List<InetServ>> getPairsAbonentInetServices(Preferences config,
                                                                                                              java.util.List<SormContract> contracts,
                                                                                                              ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)
                                                                                                       throws ru.bitel.bgbilling.common.BGException

      Получение списка сервисов всех установленных модулей Inet с уникальными ip-адресами всех договоров, которые возвращает метод getContractIds
      Returns:
        map, где key - cid договороа, value - список сервисов для данного договора
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getInetServices

          public static java.util.List<InetServ> getInetServices(Preferences preferences,
                                                                 ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext,
                                                                 java.util.List<SormContract> contractIds)
                                                          throws ru.bitel.bgbilling.common.BGException

      Returns:
        список сервисов всех установленных экземпляров модулей инета, которые были отмечены для выгрузки
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getSelectedInetModulesToUpload

          public static java.util.List<java.lang.Integer> getSelectedInetModulesToUpload(Preferences config)

      Returns:
        список id модулей inet, которые были выбраны для выгрузки

    - #### getListIntegerFromConfigByKey

          public static java.util.List<java.lang.Integer> getListIntegerFromConfigByKey(Preferences config,
                                                                                        java.lang.String key)

      Возвращает список(Integer) сохранённых в конфиге по переданному ключу

    - #### getIdsServices

          public static java.util.List<java.lang.Integer> getIdsServices(Preferences config)
                                                                  throws ru.bitel.bgbilling.common.BGException

      Returns:
        список id выбранных для выгрузки услуг оператора
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getSelectedServicesForUpload

          public static java.util.List<ServiceSorm> getSelectedServicesForUpload(Preferences config)

      Возвращает список услуг, которые были выбраны пользователем для выгрузки

    - #### sendErrorToEmail

          public static void sendErrorToEmail(Setup setup,
                                              java.lang.Exception ex,
                                              java.lang.String subject)

    - #### sendErrorToEmail

          public static void sendErrorToEmail(Setup setup,
                                              java.lang.Exception ex,
                                              java.lang.String subject,
                                              java.lang.String email)

      В случае возникновения любой ошибки формируется письмо, которое отправляется на почту администратору. Email задается при настройке выгрузки в модуле СОРМ, если не заполнен, то будет взять в конфигурации сервера в параметре alarm.mail
      Parameters:
        `setup` - конфигурация биллинга
        `ex` - экземпляр исключения. Из него берется сообщение об ошибке, а также печатается стектрейс
        `subject` - тема письма. Например, ошибка при выгрузке такого то файла, при формировании такого то списка и т.д.

    - #### trimField

          public static java.lang.String trimField(java.lang.String value,
                                                   int length)

      Обрезает строку до указанной длины.
      Parameters:
        `value` - строка, длину которой, возможно, нужно сократить
        `length` - длина, до которой обрезаем строку

    - #### getUploadFile

          public static java.nio.file.Path getUploadFile(java.lang.String fileUploadPath,
                                                         java.lang.String filePrefix,
                                                         java.lang.String datePattern)

      Создает новый файл на диске по заданному пути
      Parameters:
        `fileUploadPath` - путь в локальной директории для создания файла
        `filePrefix` - префикс создаваемого файла
        `datePattern` - формат даты, которая должна присутствовать в названии файла
      Returns:
        объект типа файл в каталоге FILE_UPLOAD_PATH/

    - #### getAdminEmail

          public static java.lang.String getAdminEmail(Preferences config)

      Возвращает указанный email для отправки информации по ошибкам

    - #### getCSVFile

          public static au.com.bytecode.opencsv.CSVWriter getCSVFile(java.nio.file.Path file)
                                                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getCSVFile

          public static au.com.bytecode.opencsv.CSVWriter getCSVFile(java.nio.file.Path file,
                                                                     java.lang.String encoding)
                                                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getCSVFile

          public static au.com.bytecode.opencsv.CSVWriter getCSVFile(java.nio.file.Path file,
                                                                     char quoteCharacter)
                                                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getCSVFile

          public static au.com.bytecode.opencsv.CSVWriter getCSVFile(java.nio.file.Path path,
                                                                     java.nio.charset.Charset encoding,
                                                                     char quoteCharacter)
                                                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getCSVFile

          public static au.com.bytecode.opencsv.CSVWriter getCSVFile(java.nio.file.Path path,
                                                                     java.nio.charset.Charset charset,
                                                                     char quoteCharacter,
                                                                     char separator)
                                                              throws java.io.IOException

      Parameters:
        `path` - - созданный для записи файл
        `quoteCharacter` - - Для поставщика Специальные Технологии использовать CSVWriter.NO_QUOTE_CHARACTER, для остальных CSVWriter.DEFAULT_QUOTE_CHARACTER
      Returns:
      Throws:
        `java.io.IOException`

    - #### getIdsModulesFromConfig

          public static java.util.List<java.lang.Integer> getIdsModulesFromConfig(Preferences config,
                                                                                  java.lang.String subKey)

      Возвращает из конфига список id модулей по подключу. (Например, для выгрузки коммутаторов было выбрано несколько модулей inet, то вернётся список с выбранными модулями)

    - #### getPairsMidsListIds

          public static java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>> getPairsMidsListIds(Preferences preferences,
                                                                                                               java.lang.String subKey)

      Достаёт Map по подключу из переданного конфига, где ключ-mid, value-ids для этого модуля

    - #### getInetDevices

          public static java.util.List<Device> getInetDevices(Preferences config,
                                                              ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)

      Возвращает список устройств модуля Inet для выбранных в конфиге экземпляров Inet

    - #### getDialUpNasList

          public static java.util.List<DialUpNAS> getDialUpNasList(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext,
                                                                   Preferences config,
                                                                   boolean isSwitches)
                                                            throws ru.bitel.bgbilling.common.BGException

      список nas'ов модуля dialUp для выгрузки как коммутаторов
      Parameters:
        `isSwitches` - если true, то вернётся список nas'ов выбранных в качестве коммутаторов, если false, то список в качестве шлюзов
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getDialUpLogins

          public static java.util.List<DialUpLogin> getDialUpLogins(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext,
                                                                    Preferences config,
                                                                    java.util.List<SormContract> contracts)
                                                             throws ru.bitel.bgbilling.common.BGException

      Привязка договоров к логинам модуля DialUp.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getIPResources

          public static java.util.List<IpResource> getIPResources(Preferences config,
                                                                  ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)

      Возвращает список ip-ресурсов для выбранных в конфиге модулей inet, за исключением тех, которые были выбраны, как не выгружаемые

    - #### getVoiceDevices

          public static java.util.List<Device> getVoiceDevices(Preferences config,
                                                               ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)

      Возвращает список устройств модуля Voice для выбранных модулей в конфиге

    - #### getPhoneSources

          public static java.util.List<Source> getPhoneSources(Preferences config,
                                                               ru.bitel.bgbilling.kernel.container.managed.ServerContext context)

    - #### getSelectedGateways

          public static java.util.List<Device> getSelectedGateways(Preferences config,
                                                                   ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)

      Возвращает список устройств, которые выбраны, как шлюзы оператора

    - #### getBunches

          public static java.util.List<Bunch> getBunches(Preferences config)

      Возвращает список пучков оператора сохранённых в конфиге

    - #### getUploadVoiceNumberingResources

          public static java.util.List<NumberRange> getUploadVoiceNumberingResources(Preferences config,
                                                                                     ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext)

      Возвращает список номеров, которые должны быть выгружены для выбранных экземпляров модулей Voice

    - #### getUploadPhoneNumberingResources

          public static java.util.List<NumberRange> getUploadPhoneNumberingResources(Preferences config,
                                                                                     java.sql.Connection connection)

      Возвращает список номеров, которые должны быть выгружены для выбранных модулей phone

    - #### getTelephoneModulesIds

          public static java.util.Map<java.lang.String,java.util.List<java.lang.Integer>> getTelephoneModulesIds(Preferences config)

      Возвращает список выбранныз для выгрузки телефонных модулей
      Returns:
        Map, где key - модуль phone или voice, value - список id соответствующего модуля установленного в биллинге

    - #### getVoiceModuleSubscriptionList

          public static java.util.Map<java.lang.Integer,java.util.List<PhoneResourceSubscription>> getVoiceModuleSubscriptionList(java.util.List<java.lang.Integer> voiceModules,
                                                                                                                                  ru.bitel.bgbilling.kernel.container.managed.ServerContext context,
                                                                                                                                  Preferences config)

      Parameters:
        `voiceModules` - - список id установленных модулей Voice
      Returns:
        Map, где key - id модуля Voice, value - список подписок на ресурсы данного модуля за последние 3 года

    - #### checkThreeYearsAgo

          public static boolean checkThreeYearsAgo(java.util.Date dateTo)

      Т.к. большинство поставщиков СОРМ просит данные за последние 3 года, создан метод для проверки даты
      Returns:
        true - если переданная дата была не раньше 3-х лет назад с текущего момента

    - #### getAddressList

          public static java.util.List<Pair<java.lang.Integer,java.util.List<Pair<java.lang.String,java.lang.Integer>>>> getAddressList(Preferences config,
                                                                                                                                        java.util.List<SormContract> contracts)

      Для каждого договора формирует пары номер договора - пара, где first-идентификатор типа адреса, second-pid параметра договора для данного типа адреса

    - #### getAddressType

          public static java.lang.String getAddressType(java.lang.String configAddressKey)

      Используется для MfiSoft и SpecTeh Соотносит тип адреса из конфига с типом адреса, который должен быть указан в формировании файла для выгрузки адресов абонента
      Parameters:
        `configAddressKey` - - тип адреса из конфига
      Returns:
        тип адреса (целое число в виде строки) из списка поставщиков MfiSoft или SpecTeh

    - #### ip2Hex

          public static java.lang.String ip2Hex(java.lang.String ip)

      Преобразование строки с ip-адресом из десятичного в шестнадцатеричное представление
      Parameters:
        `ip` - вида 192.168.1.12
      Returns:
        вида C0A88565

    - #### getDocumentsTypes

          public static java.util.List<IdTitle> getDocumentsTypes(Preferences config,
                                                                  ContractParameterManager cpm)
                                                           throws ru.bitel.bgbilling.common.BGException

      Возвращает список документов из выбранного пользователем спискового параметра договора
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getDocumentTypeIdOfContract

          public static int getDocumentTypeIdOfContract(Preferences config,
                                                        ContractParameterManager cpm,
                                                        int cid,
                                                        java.util.List<IdTitle> documentTypes)
                                                 throws ru.bitel.bgbilling.common.BGException

      Возвращает id типа документа для договора
      Parameters:
        `config` - - конфиг выгрузки
        `cpm` -
        `cid` - - id договора
        `documentTypes` - - список типов документов
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getConnectionStandart

          public static java.lang.String getConnectionStandart(Preferences config)

    - #### getParameterOfCity

          public static java.lang.String getParameterOfCity(ru.bitel.bgbilling.kernel.container.managed.ServerContext serverContext,
                                                            AddressManager addressManager,
                                                            AddressStruct addressStruct,
                                                            java.lang.String parameterKey)
                                                     throws ru.bitel.bgbilling.common.BGException

      Возвращает значение дополнительного параметра для города
      Parameters:
        `parameterKey` - - ключ параметра, значение которого будет возвращено
        `addressStruct` - - адрес из которого будет взят город, у которого будет взят параметр
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### checkValidAddress

          public static boolean checkValidAddress(AddressStruct address)

      Проверка адреса на заполненность обязательных для СОРМа полей
      Returns:
        true - если все необходимые поля заполнены

    - #### getIPGatewayItem

          public static java.lang.String[] getIPGatewayItem(Device inetDevice)

      Только для МФИСофт и Спец.Технологий! Для формирования файла IP_GATEWAY, т.к. для данных поставщиков структура файла одинакова
      Parameters:
        `inetDevice` - устройство модуля inet
      Returns:
        возвращает запись для файла IP_GATEWAY исходя из inetDevice

    - #### getFullOperatorAddress

          public static java.lang.String getFullOperatorAddress(Preferences config)

      Формирует адрес оператора одной строкой из конфигурации выгрузки
      Returns:
        адресс оператора одной строкой

    - #### getInternalUsers

          public static java.util.List<InternalUser> getInternalUsers(java.sql.Connection connection,
                                                                      ObjectManager objectManager,
                                                                      ParamValueManager valueManager,
                                                                      int contractId,
                                                                      java.lang.String contractTitle,
                                                                      Preferences config)

    - #### getAddressFromDeviceAttributes

          public static EntityAttrAddress getAddressFromDeviceAttributes(Device device)