Package ru.i_novus.ms.rdm.api.util
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 ComparableRowfindComparableRow(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.DiffRowValuefindDiffRowValue(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.DiffRowValuefindDiffRowValue(ReferenceFilterValue filterValue, java.util.List<ru.i_novus.platform.datastorage.temporal.model.value.DiffRowValue> diffRowValues)Поиск записи о различии по ссылочному значению.static RefBookRowValuefindRefBookRowValue(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.RowValuefindRowValue(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.DiffStatusEnumgetStrongestStatus(ru.i_novus.platform.datastorage.temporal.enums.DiffStatusEnum status1, ru.i_novus.platform.datastorage.temporal.enums.DiffStatusEnum status2)static booleanisRefBookAltered(StructureDiff diff)Проверка на наличие изменения структуры.
-
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
Проверка на наличие изменения структуры.- 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:
- Запись о различии
-