Class ComparableUtils

java.lang.Object
ru.i_novus.ms.rdm.api.util.ComparableUtils

public class ComparableUtils
extends java.lang.Object
  • Method Summary

    Modifier and Type Method Description
    static java.util.List<ComparableField> createCommonComparableFields​(RefBookAttributeDiff attributeDiff, Structure newStructure, Structure oldStructure)
    Возвращает для двух версий общий список атрибутов со статусами.
    static java.util.Set<java.util.List<AttributeFilter>> createPrimaryAttributesFilters​(org.springframework.data.domain.Page<? extends ru.i_novus.platform.datastorage.temporal.model.value.RowValue> data, Structure structure)
    Для полученного набора строк заполняется множество фильтров по первичным полям.
    static java.util.Set<java.util.List<AttributeFilter>> createPrimaryAttributesFilters​(RefBookDataDiff refBookDataDiff, Structure structure)
    Для полученного набора строк заполняется множество фильтров по первичным полям.
    static ComparableRow findComparableRow​(java.util.List<Structure.Attribute> primaries, ru.i_novus.platform.datastorage.temporal.model.value.RowValue rowValue, java.util.List<ComparableRow> comparableRows, ru.i_novus.platform.datastorage.temporal.enums.DiffStatusEnum status)
    В списке записей #comparableRows ищется строка, которая соответствует записи #rowValue на основании набора первичных ключей #primaries.
    static ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue findDiffRowValue​(java.util.List<Structure.Attribute> primaries, ru.i_novus.platform.datastorage.temporal.model.value.RowValue rowValue, java.util.List<ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue> diffRowValues)
    В списке diff-записей #diffRowValues ищется запись, которая соответствует строке #rowValue на основании набора первичных ключей #primaries.
    static ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue findDiffRowValue​(ReferenceFilterValue filterValue, java.util.List<ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue> diffRowValues)
    Поиск записи о различии по ссылочному значению.
    static RefBookRowValue findRefBookRowValue​(java.util.List<Structure.Attribute> primaries, Structure.Attribute refAttribute, ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue diffRowValue, java.util.List<RefBookRowValue> rowValues)
    В списке записей #rowValues ищется первая запись, которая соответствует строке об изменениях #diffRowValue на основании набора первичных ключей #primaries.
    static java.util.List<RefBookRowValue> findRefBookRowValues​(java.util.List<Structure.Attribute> primaries, Structure.Attribute refAttribute, ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue diffRowValue, java.util.List<RefBookRowValue> rowValues)
    В списке записей #rowValues ищутся записи, которые соответствуют строке об изменениях #diffRowValue на основании набора первичных ключей #primaries.
    static ru.i_novus.platform.datastorage.temporal.model.value.RowValue findRowValue​(java.util.List<Structure.Attribute> primaries, ru.i_novus.platform.datastorage.temporal.model.value.RowValue rowValue, java.util.List<? extends ru.i_novus.platform.datastorage.temporal.model.value.RowValue> rowValues)
    В списке записей #rowValues ищется строка, которая соответствует записи #rowValue на основании набора первичных ключей #primaries.
    static ru.i_novus.platform.datastorage.temporal.enums.DiffStatusEnum getStrongestStatus​(ru.i_novus.platform.datastorage.temporal.enums.DiffStatusEnum status1, ru.i_novus.platform.datastorage.temporal.enums.DiffStatusEnum status2)  
    static boolean isRefBookAltered​(StructureDiff diff)
    Проверка на наличие изменения структуры.

    Methods inherited from class java.lang.Object

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

    • getStrongestStatus

      public static ru.i_novus.platform.datastorage.temporal.enums.DiffStatusEnum getStrongestStatus​(ru.i_novus.platform.datastorage.temporal.enums.DiffStatusEnum status1, ru.i_novus.platform.datastorage.temporal.enums.DiffStatusEnum status2)
    • findDiffRowValue

      public static ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue findDiffRowValue​(java.util.List<Structure.Attribute> primaries, ru.i_novus.platform.datastorage.temporal.model.value.RowValue rowValue, java.util.List<ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue> diffRowValues)
      В списке diff-записей #diffRowValues ищется запись, которая соответствует строке #rowValue на основании набора первичных ключей #primaries.
      Parameters:
      primaries - список первичных атрибутов для идентификации записи
      rowValue - запись, для которой ведется поиск в полученном списке записей
      diffRowValues - список diff-записей, среди которых ведется поиск
      Returns:
      Найденная diff-запись об изменениях либо null
    • findRefBookRowValue

      public static RefBookRowValue findRefBookRowValue​(java.util.List<Structure.Attribute> primaries, Structure.Attribute refAttribute, ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue diffRowValue, java.util.List<RefBookRowValue> rowValues)
      В списке записей #rowValues ищется первая запись, которая соответствует строке об изменениях #diffRowValue на основании набора первичных ключей #primaries.
      Parameters:
      primaries - список первичных атрибутов для идентификации записи
      refAttribute - ссылочный атрибут версии, которая ссылается (для получения данных из записи rowValue)
      diffRowValue - diff-запись, для которой ведется поиск в полученном списке записей
      rowValues - список записей, среди которых ведется поиск
      Returns:
      Найденная запись либо null
    • findRefBookRowValues

      public static java.util.List<RefBookRowValue> findRefBookRowValues​(java.util.List<Structure.Attribute> primaries, Structure.Attribute refAttribute, ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue diffRowValue, java.util.List<RefBookRowValue> rowValues)
      В списке записей #rowValues ищутся записи, которые соответствуют строке об изменениях #diffRowValue на основании набора первичных ключей #primaries.
      Parameters:
      primaries - список первичных атрибутов для идентификации записи
      refAttribute - ссылочный атрибут версии, которая ссылается (для получения данных из записи rowValue)
      diffRowValue - diff-запись, для которой ведётся поиск в полученном списке записей
      rowValues - список записей, среди которых ведётся поиск
      Returns:
      Список найденных записей
    • findRowValue

      public static ru.i_novus.platform.datastorage.temporal.model.value.RowValue findRowValue​(java.util.List<Structure.Attribute> primaries, ru.i_novus.platform.datastorage.temporal.model.value.RowValue rowValue, java.util.List<? extends ru.i_novus.platform.datastorage.temporal.model.value.RowValue> rowValues)
      В списке записей #rowValues ищется строка, которая соответствует записи #rowValue на основании набора первичных ключей #primaries.
      Parameters:
      primaries - список первичных атрибутов для идентификации записи
      rowValue - запись, для которой ведётся поиск соответствующей в полученном списке записей
      rowValues - список записей, среди которых ведётся поиск
      Returns:
      Найденная запись либо null
    • findComparableRow

      public static ComparableRow findComparableRow​(java.util.List<Structure.Attribute> primaries, ru.i_novus.platform.datastorage.temporal.model.value.RowValue rowValue, java.util.List<ComparableRow> comparableRows, ru.i_novus.platform.datastorage.temporal.enums.DiffStatusEnum status)
      В списке записей #comparableRows ищется строка, которая соответствует записи #rowValue на основании набора первичных ключей #primaries.
      Parameters:
      primaries - список первичных атрибутов для идентификации записи
      rowValue - запись, для которой ведется поиск соответствующей
      comparableRows - список записей, среди которых ведется поиск
      status - статус записи для получения нужного значения
      Returns:
      Найденная запись либо null
    • createPrimaryAttributesFilters

      public static java.util.Set<java.util.List<AttributeFilter>> createPrimaryAttributesFilters​(RefBookDataDiff refBookDataDiff, Structure structure)
      Для полученного набора строк заполняется множество фильтров по первичным полям.
      Parameters:
      refBookDataDiff - информация об измененных строк, для которых необходимо создать фильтры
      structure - структура версии, для определения первичных полей
      Returns:
      Множество фильтров по первичным полям версии
    • createPrimaryAttributesFilters

      public static java.util.Set<java.util.List<AttributeFilter>> createPrimaryAttributesFilters​(org.springframework.data.domain.Page<? extends ru.i_novus.platform.datastorage.temporal.model.value.RowValue> data, Structure structure)
      Для полученного набора строк заполняется множество фильтров по первичным полям.
      Parameters:
      data - множество строк, значения которых будут переведны в фильтры
      structure - структура версии, для определения первичных полей
      Returns:
      Множество фильтров по первичным полям версии
    • createCommonComparableFields

      public static java.util.List<ComparableField> createCommonComparableFields​(RefBookAttributeDiff attributeDiff, Structure newStructure, Structure oldStructure)
      Возвращает для двух версий общий список атрибутов со статусами. Содержит изменённые и добавленные атрибуты в порядке их расположения в новой структуре, удалённые атрибуты в конце списка в порядке их расположения в старой структуре.
      Parameters:
      attributeDiff - изменения для сравниваемых версий
      newStructure - структура новой версии, определяет порядок полей
      oldStructure - структура старой версии, определяет порядок удаленных полей в конце списка
      Returns:
      Список полей сравнения
    • isRefBookAltered

      public static boolean isRefBookAltered​(StructureDiff diff)
      Проверка на наличие изменения структуры.
      Parameters:
      diff - различие в структурах версий
      Returns:
      Наличие изменения структуры
    • findDiffRowValue

      public static ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue findDiffRowValue​(ReferenceFilterValue filterValue, java.util.List<ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue> diffRowValues)
      Поиск записи о различии по ссылочному значению.
      Parameters:
      filterValue - значение ссылочного поля
      diffRowValues - список различий
      Returns:
      Запись о различии