Package ru.bitel.bgbilling.server.util

# Class ServerUtils

java.lang.Object
ru.bitel.bgbilling.server.util.ServerUtils

    public class ServerUtils
    extends java.lang.Object

Серверный утилс. Работа с соединениями с БД. Также содержит методы импортируемые в xslt-шаблонах.

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `ServerUtils()` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `static java.util.List<java.lang.String>` | `addItemsFromRS​(java.sql.Connection con, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2)` |
  `static java.util.List<java.lang.String>` | `addItemsFromRS​(java.sql.Connection con, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2, java.lang.String joins)` |
  `static java.util.List<java.lang.String>` | `addItemsFromRS​(java.sql.Connection con, org.w3c.dom.Element whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2)` |
  `static java.util.List<java.lang.String>` | `addItemsFromRS​(java.sql.Connection con, org.w3c.dom.Element whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2, java.lang.String joins)` |
  `static void` | `addNoCache​(javax.servlet.http.HttpServletResponse response)` |
  `static void` | `changeLastModificationTime​(java.sql.Connection con, java.lang.String param)` |
  `static void` | `checkPeriod​(java.util.Date date1, java.util.Date date2)` | проверка как в старых экшенах, чтобы date2>=date1 или одна их них null, внимание: допускается date1=null
  `static void` | `checkTable​(java.sql.Connection con, java.lang.String tableName, java.lang.String createQuery)` | проверка наличия таблицы и создание ее если нет для месячных таблиц желательно использовать @ru.bitel.bgbilling.server.util.DefaultServerSetup.checkModuleMonthTableName
  `static void` | `closeConnection​(java.sql.Connection con)` | Безопасное закрытие одного соединения с БД.
  `static void` | `closeConnection​(java.sql.Connection... con)` | Безопасное закрытие одного или нескольких соединений с БД.
  `static void` | `closeConnection​(java.sql.Connection con, java.sql.Connection conSlave)` | Безопасное закрытие одного или двух соединений с БД.
  `static boolean` | `columnExist​(java.sql.Connection con, java.lang.String table, java.lang.String column)` |
  `static void` | `commitConnection​(java.sql.Connection con)` | Каммит одного соединения с БД.
  `static void` | `createDirectoriesOnFTP​(org.apache.commons.net.ftp.FTPClient ftpConnect, java.lang.String pathOnFTP)` | Разбивает переданный путь по / , затем по каждой директории проверяет существует ли она, если нет, то создаёт
  `static java.lang.String` | `dateToString​(java.lang.String source, java.lang.String inPattern, java.lang.String outPattern)` |
  `static void` | `deleteDir​(java.io.File dirPath)` |
  `static java.util.List<java.lang.String>` | `deleteRowsFromTable​(java.sql.Connection con, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn)` |
  `static void` | `dropExistColumn​(java.sql.Connection con, java.lang.String table, java.lang.String column)` |
  `static void` | `dropExistTable​(java.sql.Connection con, java.lang.String tableName)` |
  `static java.lang.String` | `formatNumber​(java.lang.Number value, java.lang.String formatPattern)` | Используется XSLT скриптами в качестве расширения.
  `static int` | `foundRows​(java.sql.Connection con)` |
  `static java.util.List<java.lang.Class<?>>` | `getClassList​(java.lang.String packageName)` |
  `static java.util.Map<java.lang.String,​byte[]>` | `getEntriesFromZip​(java.util.zip.ZipInputStream zis, java.lang.String mask)` |
  `static java.util.Map<java.lang.String,​byte[]>` | `getFileEntriesFromZipByPrefix​(java.util.zip.ZipInputStream zis, java.lang.String prefix)` |
  `static java.util.Calendar` | `getLastModificationTime​(java.sql.Connection con, java.lang.String param)` |
  `static java.lang.String` | `getModuleMonthDayTableName​(java.lang.String name, java.util.Date time, int moduleId)` | Вернет name_mid_yyyyMMdd
  `static java.lang.String` | `getModuleMonthTableName​(java.lang.String name, java.time.LocalDate time, int moduleId)` |
  `static java.lang.String` | `getModuleMonthTableName​(java.lang.String name, java.util.Date time, int moduleId)` | Функция выдает название помесячной таблицы на основании префикса, календаря с месяцем и кода модуля name_mid_yyyyMM
  `static java.lang.String` | `getModuleTableName​(java.lang.String name, int mid)` | Функция выдает название таблицы на основании префикса и кода модуля name_mid
  `static java.lang.String` | `getMonthTableName​(java.lang.String name, java.util.Date time)` | Вернет name_yyyyMM
  `static java.security.PrivateKey` | `getPrivateKey​(Setup setup, java.lang.String alias)` | Получение приватного ключа из файла .keystore по алиасу
  `static java.lang.String` | `getQuestions​(int count)` | Получаем строку вида ?
  `static java.util.List<java.util.List<java.lang.Integer>>` | `getRanges​(int gid, java.lang.String range)` | Парсит конфиги вида 1-10;12;20-4096 добавляем их парамми. для одного числа делает дублирование
  `static java.lang.String` | `getServerHome()` | общий код в серверах - получает полный путь до корня сервера (там где находится каталог data итд)
  `static java.lang.String` | `getSetupValue​(java.sql.Connection con, java.lang.String name)` |
  `static java.lang.String` | `getSetupValue​(java.sql.Connection con, java.lang.String name, java.lang.String defaultValue)` | Возвращает данные из таблицы setup
  `static java.io.BufferedReader` | `getSocketIn​(java.net.Socket socket)` |
  `static java.io.PrintWriter` | `getSocketOut​(java.net.Socket socket)` |
  `static int` | `lastInsertId​(java.sql.Connection con)` |
  `static int` | `lastInsertId​(java.sql.PreparedStatement ps)` |
  `static long` | `lastInsertLongId​(java.sql.PreparedStatement ps)` |
  `static void` | `prepareElementToSerialize​(org.w3c.dom.Node el)` |
  `static void` | `recycle​(java.lang.Object... oo)` |
  `static void` | `removeSetupValue​(java.sql.Connection con, java.lang.String name)` |
  `static java.lang.String` | `replace​(java.lang.String value, java.lang.String from, java.lang.String to)` | Используется XSLT скриптами в качестве расширения.
  `static void` | `resultSetToXML​(java.sql.ResultSet rs, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table)` |
  `static void` | `resultSetToXML​(java.sql.ResultSet rs, org.w3c.dom.Element whereAdd, java.lang.String table)` | сериализует таблицу в XML елемент
  `static void` | `setAutoCommit​(java.sql.Connection con, boolean auto)` |
  `static void` | `setSetupValue​(java.sql.Connection con, java.lang.String name, java.lang.String value)` |
  `static boolean` | `tableExists​(java.sql.Connection con, java.lang.String tableName)` | Проверка на существование таблицы в БД с периодической (раз в час) чисткой тех к которым за последний час не было обращений
  `static java.lang.String` | `upd5​(java.lang.String doc1, java.lang.String doc2, java.lang.String date1, java.lang.String date2)` | Используется XSLT скриптами в качестве расширения.
  `static java.lang.String` | `uptimeStatus​(java.util.Date startTime)` | Сстатус uptime чего либо.
  `static java.lang.String` | `urldecode​(java.lang.String value)` | Декодирование mime данных в урлах, НЕ декодирование урлов целиком, обратная к urlencode.
  `static java.lang.String` | `urlencode​(java.lang.String value)` | Кодирование mime данных в урлах (в x-www-form-urlencoded), НЕ кодирование урлов целиком.
  `static java.lang.String` | `valueOrDefault​(java.lang.String value, java.lang.String defaultValue)` | Используется XSLT скриптами в качестве расширения.

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

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

- ## Constructor Details

  - ### ServerUtils

    public ServerUtils()

- ## Method Details

  - ### tableExists

    public static boolean tableExists​(java.sql.Connection con, java.lang.String tableName)
    Проверка на существование таблицы в БД с периодической (раз в час) чисткой тех к которым за последний час не было обращений
    Parameters:
      `con` - объект доступа к БД
      `tableName` - имя проверяемой таблицы
    Returns:
      true - таблица существует, false - таблица не существует или нет доступа к БД
    Throws:
      `java.sql.SQLException` - если возникают проблемы с доступом к БД

  - ### columnExist

    public static boolean columnExist​(java.sql.Connection con, java.lang.String table, java.lang.String column)

  - ### dropExistColumn

    public static void dropExistColumn​(java.sql.Connection con, java.lang.String table, java.lang.String column) throws java.sql.SQLException
    Throws:
      `java.sql.SQLException`

  - ### addItemsFromRS

    public static java.util.List<java.lang.String> addItemsFromRS​(java.sql.Connection con, org.w3c.dom.Element whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2) throws java.sql.SQLException, javax.xml.stream.XMLStreamException
    Throws:
      `java.sql.SQLException`
      `javax.xml.stream.XMLStreamException`

  - ### addItemsFromRS

    public static java.util.List<java.lang.String> addItemsFromRS​(java.sql.Connection con, org.w3c.dom.Element whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2, java.lang.String joins) throws java.sql.SQLException, javax.xml.stream.XMLStreamException
    Throws:
      `java.sql.SQLException`
      `javax.xml.stream.XMLStreamException`

  - ### addItemsFromRS

    public static java.util.List<java.lang.String> addItemsFromRS​(java.sql.Connection con, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2) throws java.sql.SQLException, javax.xml.stream.XMLStreamException
    Throws:
      `java.sql.SQLException`
      `javax.xml.stream.XMLStreamException`

  - ### addItemsFromRS

    public static java.util.List<java.lang.String> addItemsFromRS​(java.sql.Connection con, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn, boolean dateFilter, java.lang.String date1, java.lang.String date2, java.lang.String joins) throws java.sql.SQLException, javax.xml.stream.XMLStreamException
    Throws:
      `java.sql.SQLException`
      `javax.xml.stream.XMLStreamException`

  - ### deleteRowsFromTable

    public static java.util.List<java.lang.String> deleteRowsFromTable​(java.sql.Connection con, java.lang.String table, java.lang.String keyColumn, java.lang.String keyValue, java.lang.String retColumn) throws java.sql.SQLException
    Throws:
      `java.sql.SQLException`

  - ### getModuleMonthTableName

    public static java.lang.String getModuleMonthTableName​(java.lang.String name, java.time.LocalDate time, int moduleId)

  - ### getModuleMonthTableName

    public static java.lang.String getModuleMonthTableName​(java.lang.String name, java.util.Date time, int moduleId)
    Функция выдает название помесячной таблицы на основании префикса, календаря с месяцем и кода модуля
    name_mid_yyyyMM

  - ### getModuleMonthDayTableName

    public static java.lang.String getModuleMonthDayTableName​(java.lang.String name, java.util.Date time, int moduleId)
    Вернет name_mid_yyyyMMdd

  - ### getModuleTableName

    public static java.lang.String getModuleTableName​(java.lang.String name, int mid)
    Функция выдает название таблицы на основании префикса и кода модуля name_mid

  - ### getMonthTableName

    public static java.lang.String getMonthTableName​(java.lang.String name, java.util.Date time)
    Вернет name_yyyyMM

  - ### prepareElementToSerialize

    public static void prepareElementToSerialize​(org.w3c.dom.Node el)

  - ### checkTable

    public static void checkTable​(java.sql.Connection con, java.lang.String tableName, java.lang.String createQuery) throws java.sql.SQLException
    проверка наличия таблицы и создание ее если нет для месячных таблиц желательно использовать @ru.bitel.bgbilling.server.util.DefaultServerSetup.checkModuleMonthTableName
    Throws:
      `java.sql.SQLException`

  - ### uptimeStatus

    public static final java.lang.String uptimeStatus​(java.util.Date startTime)
    Сстатус uptime чего либо. Используется в отдельнозапущенных серверах для инфы в статусе.
    Parameters:
      `startTime` - время запуска этого "что-либо"
    Returns:
      некая uptime-информация в виде строки

  - ### getSetupValue

    public static java.lang.String getSetupValue​(java.sql.Connection con, java.lang.String name)

  - ### getSetupValue

    public static java.lang.String getSetupValue​(java.sql.Connection con, java.lang.String name, java.lang.String defaultValue)
    Возвращает данные из таблицы setup
    Parameters:
      `con` -
      `name` - имя параметра
      `defaultValue` - значение по умолчанию
    Returns:
      значение из таблицы если есть запись с заданным именем, иначе defaultValue

  - ### setSetupValue

    public static void setSetupValue​(java.sql.Connection con, java.lang.String name, java.lang.String value)

  - ### removeSetupValue

    public static void removeSetupValue​(java.sql.Connection con, java.lang.String name)

  - ### getLastModificationTime

    public static java.util.Calendar getLastModificationTime​(java.sql.Connection con, java.lang.String param)

  - ### lastInsertId

    public static int lastInsertId​(java.sql.Connection con) throws java.sql.SQLException
    Throws:
      `java.sql.SQLException`

  - ### lastInsertId

    public static int lastInsertId​(java.sql.PreparedStatement ps) throws java.sql.SQLException
    Throws:
      `java.sql.SQLException`

  - ### lastInsertLongId

    public static long lastInsertLongId​(java.sql.PreparedStatement ps) throws java.sql.SQLException
    Throws:
      `java.sql.SQLException`

  - ### foundRows

    public static int foundRows​(java.sql.Connection con) throws java.sql.SQLException
    Throws:
      `java.sql.SQLException`

  - ### changeLastModificationTime

    public static void changeLastModificationTime​(java.sql.Connection con, java.lang.String param)

  - ### closeConnection

    public static final void closeConnection​(java.sql.Connection... con)
    Безопасное закрытие одного или нескольких соединений с БД.
    Parameters:
      `con` -

  - ### closeConnection

    public static final void closeConnection​(java.sql.Connection con)
    Безопасное закрытие одного соединения с БД. Более быстр по сравнению с `closeConnection(Connection...)`, т.к. на каждый вызов не создаётся массив.
    Parameters:
      `con` - - соединение, не может быть null

  - ### closeConnection

    public static final void closeConnection​(java.sql.Connection con, java.sql.Connection conSlave)
    Безопасное закрытие одного или двух соединений с БД. Более быстр по сравнению с `closeConnection(Connection...)`, т.к. на каждый вызов не создаётся массив.
    Parameters:
      `con` - - первое соединение, не может быть null
      `conSlave` - - второе соединенеи может быть null

  - ### commitConnection

    public static final void commitConnection​(java.sql.Connection con)
    Каммит одного соединения с БД.
    Parameters:
      `con` - - соединение.

  - ### getRanges

    public static java.util.List<java.util.List<java.lang.Integer>> getRanges​(int gid, java.lang.String range)
    Парсит конфиги вида 1-10;12;20-4096 добавляем их парамми. для одного числа делает дублирование
    Parameters:
      `gid` -
      `range` -
    Returns:

  - ### getEntriesFromZip

    public static java.util.Map<java.lang.String,​byte[]> getEntriesFromZip​(java.util.zip.ZipInputStream zis, java.lang.String mask)

  - ### resultSetToXML

    public static void resultSetToXML​(java.sql.ResultSet rs, org.w3c.dom.Element whereAdd, java.lang.String table) throws java.sql.SQLException
    сериализует таблицу в XML елемент
    Throws:
      `java.sql.SQLException`

  - ### getFileEntriesFromZipByPrefix

    public static java.util.Map<java.lang.String,​byte[]> getFileEntriesFromZipByPrefix​(java.util.zip.ZipInputStream zis, java.lang.String prefix)

  - ### getSocketOut

    public static java.io.PrintWriter getSocketOut​(java.net.Socket socket) throws java.lang.Exception
    Throws:
      `java.lang.Exception`

  - ### getSocketIn

    public static java.io.BufferedReader getSocketIn​(java.net.Socket socket) throws java.lang.Exception
    Throws:
      `java.lang.Exception`

  - ### dropExistTable

    public static final void dropExistTable​(java.sql.Connection con, java.lang.String tableName) throws java.sql.SQLException
    Throws:
      `java.sql.SQLException`

  - ### setAutoCommit

    public static final void setAutoCommit​(java.sql.Connection con, boolean auto)

  - ### resultSetToXML

    public static void resultSetToXML​(java.sql.ResultSet rs, javax.xml.stream.XMLStreamWriter whereAdd, java.lang.String table) throws java.sql.SQLException, javax.xml.stream.XMLStreamException
    Throws:
      `java.sql.SQLException`
      `javax.xml.stream.XMLStreamException`

  - ### replace

    public static java.lang.String replace​(java.lang.String value, java.lang.String from, java.lang.String to)
    Используется XSLT скриптами в качестве расширения.
    Parameters:
      `value` -
      `from` -
      `to` -
    Returns:

  - ### urlencode

    public static java.lang.String urlencode​(java.lang.String value)
    Кодирование mime данных в урлах (в x-www-form-urlencoded), НЕ кодирование урлов целиком. personalAcc=adfuf|name=mmmmm personalAcc%3Dadfuf%2Fname%3Dmmmmm Используется XSLT скриптами в качестве расширения.

  - ### urldecode

    public static java.lang.String urldecode​(java.lang.String value)
    Декодирование mime данных в урлах, НЕ декодирование урлов целиком, обратная к urlencode. Используется XSLT скриптами в качестве расширения.

  - ### valueOrDefault

    public static java.lang.String valueOrDefault​(java.lang.String value, java.lang.String defaultValue)
    Используется XSLT скриптами в качестве расширения.
    Parameters:
      `value` -
      `defaultValue` -
    Returns:

  - ### formatNumber

    public static java.lang.String formatNumber​(java.lang.Number value, java.lang.String formatPattern)
    Используется XSLT скриптами в качестве расширения.
    Parameters:
      `value` -
      `formatPattern` -
    Returns:

  - ### upd5

    public static java.lang.String upd5​(java.lang.String doc1, java.lang.String doc2, java.lang.String date1, java.lang.String date2)
    Используется XSLT скриптами в качестве расширения.
    Parameters:
      `doc1` -
      `doc2` -
      `date1` -
      `date2` -
    Returns:

  - ### dateToString

    public static java.lang.String dateToString​(java.lang.String source, java.lang.String inPattern, java.lang.String outPattern)

  - ### recycle

    public static void recycle​(java.lang.Object... oo)

  - ### addNoCache

    public static void addNoCache​(javax.servlet.http.HttpServletResponse response)

  - ### deleteDir

    public static void deleteDir​(java.io.File dirPath)

  - ### getQuestions

    public static java.lang.String getQuestions​(int count)
    Получаем строку вида ?,?,?
    Parameters:
      `count` -
    Returns:

  - ### getPrivateKey

    public static java.security.PrivateKey getPrivateKey​(Setup setup, java.lang.String alias)
    Получение приватного ключа из файла .keystore по алиасу
    Parameters:
      `setup` -
      `alias` -
    Returns:

  - ### getClassList

    public static java.util.List<java.lang.Class<?>> getClassList​(java.lang.String packageName)

  - ### createDirectoriesOnFTP

    public static void createDirectoriesOnFTP​(org.apache.commons.net.ftp.FTPClient ftpConnect, java.lang.String pathOnFTP) throws java.io.IOException
    Разбивает переданный путь по / , затем по каждой директории проверяет существует ли она, если нет, то создаёт
    Parameters:
      `ftpConnect` - коннект с FTP сервером
      `pathOnFTP` - абсолютный путь до нужной директории
    Throws:
      `java.io.IOException`

  - ### checkPeriod

    public static void checkPeriod​(java.util.Date date1, java.util.Date date2) throws ru.bitel.bgbilling.common.BGException
    проверка как в старых экшенах, чтобы date2>=date1 или одна их них null, внимание: допускается date1=null
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getServerHome

    public static java.lang.String getServerHome()
    общий код в серверах - получает полный путь до корня сервера (там где находится каталог data итд)