Revize 74a73b3b
Přidáno uživatelem Vojtěch Danišík před asi 4 roky(ů)
src/main/java/vldc/aswi/service/parameter/ParameterManagerImpl.java | ||
---|---|---|
18 | 18 |
import vldc.aswi.domain.parameter.ParameterValue; |
19 | 19 |
|
20 | 20 |
import javax.transaction.Transactional; |
21 |
import java.util.ArrayList; |
|
21 | 22 |
import java.util.LinkedList; |
22 | 23 |
import java.util.List; |
23 | 24 |
|
... | ... | |
157 | 158 |
Assembly assembly = this.assemblyRepository.getById(assemblyId); |
158 | 159 |
List<Parameter> currentAssemblyParameters = assembly.getParameters(); |
159 | 160 |
|
160 |
// Find new parameters. |
|
161 |
List<Parameter> currentAssemblyParametersNew = new LinkedList<>(currentAssemblyParameters); |
|
162 |
List<Parameter> newAssemblyParametersNew = new LinkedList<>(newAssemblyParameters); |
|
163 |
newAssemblyParametersNew.removeAll(currentAssemblyParametersNew); |
|
164 |
|
|
165 |
// Find deleted parameters. |
|
166 |
List<Parameter> currentAssemblyParametersDeleted = new LinkedList<>(currentAssemblyParameters); |
|
167 |
List<Parameter> newAssemblyParametersDeleted = new LinkedList<>(newAssemblyParameters); |
|
168 |
currentAssemblyParametersDeleted.removeAll(newAssemblyParametersDeleted); |
|
169 |
|
|
170 |
// Find duplicate elements - for updating. |
|
171 |
List<Parameter> currentAssemblyParametersUpdated = new LinkedList<>(currentAssemblyParameters); |
|
172 |
List<Parameter> newAssemblyParametersUpdated = new LinkedList<>(newAssemblyParameters); |
|
173 |
newAssemblyParametersUpdated.retainAll(currentAssemblyParametersUpdated); |
|
174 |
|
|
175 |
// If no parameter has been deleted or added, then updating is unnecessary. |
|
176 |
if (newAssemblyParametersNew.size() == 0 && currentAssemblyParametersDeleted.size() == 0 && newAssemblyParametersUpdated.size() == 0) return; |
|
177 |
|
|
178 |
// Remove deleted parameters. |
|
179 |
for (Parameter parameter : currentAssemblyParametersDeleted) { |
|
180 |
for (ParameterValue parameterValue : parameter.getParameterValues()) { |
|
181 |
// Remove parameters values. |
|
182 |
this.parameterValueRepository.delete(parameterValue); |
|
183 |
} |
|
161 |
if (newAssemblyParameters != null) { |
|
162 |
// Find new parameters. |
|
163 |
List<Parameter> currentAssemblyParametersNew = new LinkedList<>(currentAssemblyParameters); |
|
164 |
List<Parameter> newAssemblyParametersNew = new LinkedList<>(newAssemblyParameters); |
|
165 |
newAssemblyParametersNew.removeAll(currentAssemblyParametersNew); |
|
166 |
|
|
167 |
// Find deleted parameters. |
|
168 |
List<Parameter> currentAssemblyParametersDeleted = new LinkedList<>(currentAssemblyParameters); |
|
169 |
List<Parameter> newAssemblyParametersDeleted = new LinkedList<>(newAssemblyParameters); |
|
170 |
currentAssemblyParametersDeleted.removeAll(newAssemblyParametersDeleted); |
|
171 |
|
|
172 |
// Find duplicate elements - for updating. |
|
173 |
List<Parameter> currentAssemblyParametersUpdated = new LinkedList<>(currentAssemblyParameters); |
|
174 |
List<Parameter> newAssemblyParametersUpdated = new LinkedList<>(newAssemblyParameters); |
|
175 |
newAssemblyParametersUpdated.retainAll(currentAssemblyParametersUpdated); |
|
176 |
|
|
177 |
// If no parameter has been deleted or added, then updating is unnecessary. |
|
178 |
if (newAssemblyParametersNew.size() == 0 && currentAssemblyParametersDeleted.size() == 0 && newAssemblyParametersUpdated.size() == 0) |
|
179 |
return; |
|
180 |
|
|
181 |
// Remove deleted parameters. |
|
182 |
for (Parameter parameter : currentAssemblyParametersDeleted) { |
|
183 |
for (ParameterValue parameterValue : parameter.getParameterValues()) { |
|
184 |
// Remove parameters values. |
|
185 |
this.parameterValueRepository.delete(parameterValue); |
|
186 |
} |
|
184 | 187 |
|
185 |
// Remove parameter. |
|
186 |
this.parameterRepository.delete(parameter); |
|
187 |
} |
|
188 |
// Remove parameter.
|
|
189 |
this.parameterRepository.delete(parameter);
|
|
190 |
}
|
|
188 | 191 |
|
189 |
// Update rest parameters. |
|
190 |
updateParameters(newAssemblyParametersUpdated); |
|
192 |
// Update rest parameters.
|
|
193 |
updateParameters(newAssemblyParametersUpdated);
|
|
191 | 194 |
|
192 |
// Add new parameters |
|
193 |
addParameters(assemblyId, newAssemblyParametersNew); |
|
195 |
// Add new parameters |
|
196 |
addParameters(assemblyId, newAssemblyParametersNew); |
|
197 |
} |
|
194 | 198 |
} |
195 | 199 |
|
196 | 200 |
/** |
... | ... | |
391 | 395 |
this.parameterValueRepository.save(parameterValue); |
392 | 396 |
} |
393 | 397 |
} |
394 |
} |
|
398 |
|
|
399 |
/** |
|
400 |
* Delete parameters by assembly id. |
|
401 |
* @param assemblyId - ID of assembly. |
|
402 |
*/ |
|
403 |
@Override |
|
404 |
public boolean deleteParameters(Long assemblyId) { |
|
405 |
try { |
|
406 |
List<Parameter> parameters = this.parameterRepository.getByAssemblyId(assemblyId); |
|
407 |
|
|
408 |
for (Parameter parameter : parameters) { |
|
409 |
// Delete all functions from parameter in table 'Parametr_ma_Funkce'. |
|
410 |
List<Function> functionList = new ArrayList<>(parameter.getFunctions()); |
|
411 |
for (Function function : functionList) { |
|
412 |
parameter.removeFunction(function); |
|
413 |
} |
|
414 |
|
|
415 |
// Delete all operators from parameter in table 'Parametr_ma_Operator'. |
|
416 |
List<Operator> operatorList = new ArrayList<>(parameter.getOperators()); |
|
417 |
for (Operator operator : operatorList) { |
|
418 |
parameter.removeOperator(operator); |
|
419 |
} |
|
420 |
|
|
421 |
// Delete all locations from parameter in table 'Parametr_ma_Umisteni'. |
|
422 |
List<Location> locationList = new ArrayList<>(parameter.getLocations()); |
|
423 |
for (Location location : locationList) { |
|
424 |
parameter.removeLocation(location); |
|
425 |
} |
|
426 |
} |
|
427 |
|
|
428 |
// Delete all parameters. |
|
429 |
this.parameterRepository.deleteAll(parameters); |
|
430 |
return true; |
|
431 |
} catch (Exception e) { |
|
432 |
return false; |
|
433 |
} |
|
434 |
} |
|
435 |
} |
Také k dispozici: Unified diff
re #7887 Deleting configurations and assemblies, Minor restructuralization.