SUPPORT-9421: fix after update platform version
This commit is contained in:
parent
b1e33efd60
commit
b2a9641b22
1 changed files with 19 additions and 21 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue