SUPPORT-9421: fix after update platform version

This commit is contained in:
adel.ka 2025-09-22 15:34:10 +03:00
parent b1e33efd60
commit b2a9641b22

View file

@ -38,7 +38,7 @@ public abstract class ContainerValueLoaderServiceBase extends Behavior
return Collections.emptyList();
}
validateParametersNumber(params.length);
return new ArrayList<>(loadData(params, idToColumnMapping(guids)));
return new ArrayList<>(loadData(params, byColumnMapping(guids)));
}
protected abstract void validateParametersNumber(int parametersLength);
@ -47,27 +47,26 @@ public abstract class ContainerValueLoaderServiceBase extends Behavior
protected abstract List<EntityFilter> createEntityFilters(Object[] params);
private Map<String, EntityColumn> idToColumnMapping(List<String> guids) {
Map<String, FieldValueByContainer<?>> byColumnMapping = getScriptsMapping(guids,
private Map<String, FieldValueByContainer<?,?>> byColumnMapping(List<String> guids) {
Map<String, FieldValueByContainer<?,?>> byColumnMapping = getScriptsMapping(guids,
fieldDefaultValue -> fieldDefaultValue.loadType == LoadType.BY_COLUMN
);
if (byColumnMapping.isEmpty()) {
throw new IllegalArgumentException("No control data to load");
}
Map<String, EntityColumn> idToColumnMapping = byColumnMapping.entrySet().stream()
.collect(Collectors.toMap(
Map.Entry::getKey,
entry -> entry.getValue().getValueColumn()
)
);
return idToColumnMapping;
return byColumnMapping;
}
private List<FieldData> loadData(Object[] params, Map<String, EntityColumn> idToColumnMapping) {
Set<EntityColumn> columns = new HashSet<>(idToColumnMapping.values());
private List<FieldData> loadData(Object[] params, Map<String, FieldValueByContainer<?,?>> byColumnMapping ) {
Set<EntityColumn> columns = byColumnMapping.values().stream()
.map(FieldValueByContainer::getValueColumn)
.collect(Collectors.toSet());
Map<EntityColumn, Object> columnToDataMapping;
if (loadByPkCondition()) {
columnToDataMapping = loadDao.loadByPK(columns, params[0].toString()).getColumnToDataMap();
columnToDataMapping = loadDao.loadByPK(columns, params[0].toString())
.getColumnToDataMap();
}
else {
LoadOptions loadOptions = new LoadOptions();
@ -78,19 +77,18 @@ public abstract class ContainerValueLoaderServiceBase extends Behavior
: Collections.emptyMap();
}
return idToColumnMapping.entrySet().stream()
return byColumnMapping.entrySet().stream()
.map(entry -> {
DataConverter dataConverter = DataConverterProvider.getDataConverter(
entry.getValue().getType());
Object convertedValue = dataConverter.convertValueForLoad(
columnToDataMapping.get(entry.getValue()));
FieldValueByContainer<Object, Object> fieldValue = (FieldValueByContainer<Object, Object>) entry.getValue();
Object rawValue = columnToDataMapping.get(fieldValue.getValueColumn());
Object convertedValue = fieldValue.convertValueForLoad(rawValue);
return new FieldData(entry.getKey(), convertedValue);
})
.collect(Collectors.toList());
}
private Map<String, FieldValueByContainer<?>> getScriptsMapping(List<String> guids,
final Predicate<FieldValueByContainer<?>> predicate) {
private Map<String, FieldValueByContainer<?,?>> getScriptsMapping(List<String> guids,
final Predicate<FieldValueByContainer<?,?>> predicate) {
return guids.stream()
.map(guid -> new HashMap.SimpleEntry<>(guid, getFieldOnEventValueScript(guid)))
.filter(entry -> entry.getValue() != null)
@ -98,7 +96,7 @@ public abstract class ContainerValueLoaderServiceBase extends Behavior
.collect(Collectors.toMap(HashMap.SimpleEntry::getKey, HashMap.SimpleEntry::getValue));
}
private FieldValueByContainer<?> getFieldOnEventValueScript(String guid) {
private FieldValueByContainer<?,?> getFieldOnEventValueScript(String guid) {
try {
return getScriptInObject(guid, FieldValueByContainer.class);
}