diff --git a/src/main/java/org/openepics/names/service/NamesService.java b/src/main/java/org/openepics/names/service/NamesService.java index ce7e4eab8c0fdfb678aaade1e29a16fcb04f90c4..ef6697389b17d643029c2c0ce079770209a7a197 100644 --- a/src/main/java/org/openepics/names/service/NamesService.java +++ b/src/main/java/org/openepics/names/service/NamesService.java @@ -403,7 +403,7 @@ public class NamesService { // do List<Name> names = nameRepository.readNames(false, null, name, null, null, null, null, null); - ExceptionUtil.validateConditionDataNotFoundException(names != null && names.size() == 1, "name not found", name, null); + ExceptionUtil.validateConditionDataNotFoundException(ValidateUtil.isSize(names, 1), "name not found", name, null); Name toBeChecked = names.get(0); diff --git a/src/main/java/org/openepics/names/service/StructuresService.java b/src/main/java/org/openepics/names/service/StructuresService.java index d6361b3c32f61838e47eef1344a42bf96304c2d9..1b5bee770a4c28a65b41b12285a4e21e1a66ba10 100644 --- a/src/main/java/org/openepics/names/service/StructuresService.java +++ b/src/main/java/org/openepics/names/service/StructuresService.java @@ -1029,7 +1029,7 @@ public class StructuresService { // find List<SystemGroup> systemGroups = holderRepositories.getSystemGroupRepository().readSystemGroups(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null); - if (systemGroups == null || systemGroups.size() != 1) { + if (ValidateUtil.isNullOrNotSize(systemGroups, 1)) { continue; } SystemGroup toBeDeleted = systemGroups.get(0); @@ -1050,7 +1050,7 @@ public class StructuresService { // find List<System> systems = holderRepositories.getSystemRepository().readSystems(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); - if (systems == null || systems.size() != 1) { + if (ValidateUtil.isNullOrNotSize(systems, 1)) { continue; } System toBeDeleted = systems.get(0); @@ -1071,7 +1071,7 @@ public class StructuresService { // find List<Subsystem> subsystems = holderRepositories.getSubsystemRepository().readSubsystems(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); - if (subsystems == null || subsystems.size() != 1) { + if (ValidateUtil.isNullOrNotSize(subsystems, 1)) { continue; } Subsystem toBeDeleted = subsystems.get(0); @@ -1092,7 +1092,7 @@ public class StructuresService { // find List<Discipline> disciplines = holderRepositories.getDisciplineRepository().readDisciplines(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null); - if (disciplines == null || disciplines.size() != 1) { + if (ValidateUtil.isNullOrNotSize(disciplines, 1)) { continue; } Discipline toBeDeleted = disciplines.get(0); @@ -1113,7 +1113,7 @@ public class StructuresService { // find List<DeviceGroup> deviceGroups = holderRepositories.getDeviceGroupRepository().readDeviceGroups(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); - if (deviceGroups == null || deviceGroups.size() != 1) { + if (ValidateUtil.isNullOrNotSize(deviceGroups, 1)) { continue; } DeviceGroup toBeDeleted = deviceGroups.get(0); @@ -1134,7 +1134,7 @@ public class StructuresService { // find List<DeviceType> deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); - if (deviceTypes == null || deviceTypes.size() != 1) { + if (ValidateUtil.isNullOrNotSize(deviceTypes, 1)) { continue; } DeviceType toBeDeleted = deviceTypes.get(0); @@ -1200,7 +1200,7 @@ public class StructuresService { List<SystemGroup> systemGroups = holderRepositories.getSystemGroupRepository().readSystemGroups(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null); SystemGroup systemGroup = null; - if (systemGroups != null && systemGroups.size() == 1) { + if (ValidateUtil.isSize(systemGroups, 1)) { systemGroup = systemGroups.get(0); // update not latest @@ -1211,7 +1211,7 @@ public class StructuresService { // find systemGroups = holderRepositories.getSystemGroupRepository().readSystemGroups(Status.PENDING, null, queryValue, null, null, null, null, null); - if (systemGroups == null || systemGroups.size() != 1) { + if (ValidateUtil.isNullOrNotSize(systemGroups, 1)) { continue; } systemGroup = systemGroups.get(0); @@ -1238,7 +1238,7 @@ public class StructuresService { List<System> systems = holderRepositories.getSystemRepository().readSystems(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); System system = null; - if (systems != null && systems.size() == 1) { + if (ValidateUtil.isSize(systems, 1)) { system = systems.get(0); // update not latest @@ -1249,7 +1249,7 @@ public class StructuresService { // find systems = holderRepositories.getSystemRepository().readSystems(Status.PENDING, null, queryValue, null, null, null, null, null, null); - if (systems == null || systems.size() != 1) { + if (ValidateUtil.isNullOrNotSize(systems, 1)) { continue; } system = systems.get(0); @@ -1276,7 +1276,7 @@ public class StructuresService { List<Subsystem> subsystems = holderRepositories.getSubsystemRepository().readSubsystems(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); Subsystem subsystem = null; - if (subsystems != null && subsystems.size() == 1) { + if (ValidateUtil.isSize(subsystems, 1)) { subsystem = subsystems.get(0); // update not latest @@ -1287,7 +1287,7 @@ public class StructuresService { // find subsystems = holderRepositories.getSubsystemRepository().readSubsystems(Status.PENDING, null, queryValue, null, null, null, null, null, null); - if (subsystems == null || subsystems.size() != 1) { + if (ValidateUtil.isNullOrNotSize(subsystems, 1)) { continue; } subsystem = subsystems.get(0); @@ -1313,7 +1313,7 @@ public class StructuresService { List<Discipline> disciplines = holderRepositories.getDisciplineRepository().readDisciplines(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null); Discipline discipline = null; - if (disciplines != null && disciplines.size() == 1) { + if (ValidateUtil.isSize(disciplines, 1)) { discipline = disciplines.get(0); // update not latest @@ -1324,7 +1324,7 @@ public class StructuresService { // find disciplines = holderRepositories.getDisciplineRepository().readDisciplines(Status.PENDING, null, queryValue, null, null, null, null, null); - if (disciplines == null || disciplines.size() != 1) { + if (ValidateUtil.isNullOrNotSize(disciplines, 1)) { continue; } discipline = disciplines.get(0); @@ -1343,7 +1343,7 @@ public class StructuresService { List<DeviceGroup> deviceGroups = holderRepositories.getDeviceGroupRepository().readDeviceGroups(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); DeviceGroup deviceGroup = null; - if (deviceGroups != null && deviceGroups.size() == 1) { + if (ValidateUtil.isSize(deviceGroups, 1)) { deviceGroup = deviceGroups.get(0); // update not latest @@ -1354,7 +1354,7 @@ public class StructuresService { // find deviceGroups = holderRepositories.getDeviceGroupRepository().readDeviceGroups(Status.PENDING, null, queryValue, null, null, null, null, null, null); - if (deviceGroups == null || deviceGroups.size() != 1) { + if (ValidateUtil.isNullOrNotSize(deviceGroups, 1)) { continue; } deviceGroup = deviceGroups.get(0); @@ -1373,7 +1373,7 @@ public class StructuresService { List<DeviceType> deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); DeviceType deviceType = null; - if (deviceTypes != null && deviceTypes.size() == 1) { + if (ValidateUtil.isSize(deviceTypes, 1)) { deviceType = deviceTypes.get(0); // update not latest @@ -1384,7 +1384,7 @@ public class StructuresService { // find deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.PENDING, null, queryValue, null, null, null, null, null, null); - if (deviceTypes == null || deviceTypes.size() != 1) { + if (ValidateUtil.isNullOrNotSize(deviceTypes, 1)) { continue; } deviceType = deviceTypes.get(0); @@ -1433,7 +1433,7 @@ public class StructuresService { // find List<SystemGroup> systemGroups = holderRepositories.getSystemGroupRepository().readSystemGroups(Status.PENDING, null, queryValue, null, null, null, null, null); - if (systemGroups == null || systemGroups.size() != 1) { + if (ValidateUtil.isNullOrNotSize(systemGroups, 1)) { continue; } SystemGroup systemGroup = systemGroups.get(0); @@ -1450,7 +1450,7 @@ public class StructuresService { // find List<System> systems = holderRepositories.getSystemRepository().readSystems(Status.PENDING, null, queryValue, null, null, null, null, null, null); - if (systems == null || systems.size() != 1) { + if (ValidateUtil.isNullOrNotSize(systems, 1)) { continue; } System system = systems.get(0); @@ -1467,7 +1467,7 @@ public class StructuresService { // find List<Subsystem> subsystems = holderRepositories.getSubsystemRepository().readSubsystems(Status.PENDING, null, queryValue, null, null, null, null, null, null); - if (subsystems == null || subsystems.size() != 1) { + if (ValidateUtil.isNullOrNotSize(subsystems, 1)) { continue; } Subsystem subsystem = subsystems.get(0); @@ -1484,7 +1484,7 @@ public class StructuresService { // find List<Discipline> disciplines = holderRepositories.getDisciplineRepository().readDisciplines(Status.PENDING, null, queryValue, null, null, null, null, null); - if (disciplines == null || disciplines.size() != 1) { + if (ValidateUtil.isNullOrNotSize(disciplines, 1)) { continue; } Discipline discipline = disciplines.get(0); @@ -1501,7 +1501,7 @@ public class StructuresService { // find List<DeviceGroup> deviceGroups = holderRepositories.getDeviceGroupRepository().readDeviceGroups(Status.PENDING, null, queryValue, null, null, null, null, null, null); - if (deviceGroups == null || deviceGroups.size() != 1) { + if (ValidateUtil.isNullOrNotSize(deviceGroups, 1)) { continue; } DeviceGroup deviceGroup = deviceGroups.get(0); @@ -1517,7 +1517,7 @@ public class StructuresService { } else if (Type.DEVICETYPE.equals(structureElement.getType())) { List<DeviceType> deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.PENDING, null, queryValue, null, null, null, null, null, null); - if (deviceTypes == null || deviceTypes.size() != 1) { + if (ValidateUtil.isNullOrNotSize(deviceTypes, 1)) { continue; } DeviceType deviceType = deviceTypes.get(0); @@ -1565,7 +1565,7 @@ public class StructuresService { // find List<SystemGroup> systemGroups = holderRepositories.getSystemGroupRepository().readSystemGroups(Status.PENDING, null, queryValue, null, null, null, null, null); - if (systemGroups == null || systemGroups.size() != 1) { + if (ValidateUtil.isNullOrNotSize(systemGroups, 1)) { continue; } SystemGroup systemGroup = systemGroups.get(0); @@ -1582,7 +1582,7 @@ public class StructuresService { // find List<System> systems = holderRepositories.getSystemRepository().readSystems(Status.PENDING, null, queryValue, null, null, null, null, null, null); - if (systems == null || systems.size() != 1) { + if (ValidateUtil.isNullOrNotSize(systems, 1)) { continue; } System system = systems.get(0); @@ -1599,7 +1599,7 @@ public class StructuresService { // find List<Subsystem> subsystems = holderRepositories.getSubsystemRepository().readSubsystems(Status.PENDING, null, queryValue, null, null, null, null, null, null); - if (subsystems == null || subsystems.size() != 1) { + if (ValidateUtil.isNullOrNotSize(subsystems, 1)) { continue; } Subsystem subsystem = subsystems.get(0); @@ -1616,7 +1616,7 @@ public class StructuresService { // find List<Discipline> disciplines = holderRepositories.getDisciplineRepository().readDisciplines(Status.PENDING, null, queryValue, null, null, null, null, null); - if (disciplines == null || disciplines.size() != 1) { + if (ValidateUtil.isNullOrNotSize(disciplines, 1)) { continue; } Discipline discipline = disciplines.get(0); @@ -1633,7 +1633,7 @@ public class StructuresService { // find List<DeviceGroup> deviceGroups = holderRepositories.getDeviceGroupRepository().readDeviceGroups(Status.PENDING, null, queryValue, null, null, null, null, null, null); - if (deviceGroups == null || deviceGroups.size() != 1) { + if (ValidateUtil.isNullOrNotSize(deviceGroups, 1)) { continue; } DeviceGroup deviceGroup = deviceGroups.get(0); @@ -1649,7 +1649,7 @@ public class StructuresService { } else if (Type.DEVICETYPE.equals(structureElement.getType())) { List<DeviceType> deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.PENDING, null, queryValue, null, null, null, null, null, null); - if (deviceTypes == null || deviceTypes.size() != 1) { + if (ValidateUtil.isNullOrNotSize(deviceTypes, 1)) { continue; } DeviceType deviceType = deviceTypes.get(0); diff --git a/src/main/java/org/openepics/names/util/ValidateNameElementUtil.java b/src/main/java/org/openepics/names/util/ValidateNameElementUtil.java index b19b554b06401d456057ce89eea3de826c1c2a99..15b07110313af01884cdf59fecaf9267b556a2f2 100644 --- a/src/main/java/org/openepics/names/util/ValidateNameElementUtil.java +++ b/src/main/java/org/openepics/names/util/ValidateNameElementUtil.java @@ -248,8 +248,7 @@ public class ValidateNameElementUtil { // retrieve for uuid and check if (NameChoice.UPDATE.equals(nameChoice) || NameChoice.DELETE.equals(nameChoice)) { List<Name> names = nameRepository.readNames(false, nameElement.getUuid().toString(), null, null, null, null, null, null); - ExceptionUtil.validateConditionDataNotCorrectException(names != null && names.size() == 1, - TextUtil.VALUE_IS_NOT_CORRECT, details, TextUtil.UUID); + ExceptionUtil.validateConditionDataNotCorrectException(ValidateUtil.isSize(names, 1), TextUtil.VALUE_IS_NOT_CORRECT, details, TextUtil.UUID); } SystemGroup systemGroup = null; @@ -325,19 +324,19 @@ public class ValidateNameElementUtil { // ok with same name, name equivalence if same uuid List<Name> names = nameRepository.readNames(false, null, derivedName, null, null, null, null, null); if (NameChoice.CREATE.equals(nameChoice)) { - condition = names == null || names.isEmpty(); + condition = ValidateUtil.isNullOrEmpty(names); } else { // NameChoice.UPDATE.equals(nameChoice) - condition = names == null || names.isEmpty() || names.size() == 1 && names.get(0).getUuid().equals(uuid); + condition = ValidateUtil.isNullOrEmpty(names) || names.size() == 1 && names.get(0).getUuid().equals(uuid); } ExceptionUtil.validateConditionDataExistException(condition, TextUtil.CONVENTION_NAME_EXISTS, details, TextUtil.PARENTSYSTEMSTRUCTURE); names = nameRepository.readNames(false, null, null, namingConvention.equivalenceClassRepresentative(derivedName), null, null, null, null); if (NameChoice.CREATE.equals(nameChoice)) { - condition = names == null || names.isEmpty(); + condition = ValidateUtil.isNullOrEmpty(names); } else { // NameChoice.UPDATE.equals(nameChoice) - condition = names == null || names.isEmpty() || names.size() == 1 && names.get(0).getUuid().equals(uuid); + condition = ValidateUtil.isNullOrEmpty(names) || names.size() == 1 && names.get(0).getUuid().equals(uuid); } ExceptionUtil.validateConditionDataExistException(condition, TextUtil.CONVENTION_NAME_EQUIVALENCE_EXISTS, details, TextUtil.PARENTSYSTEMSTRUCTURE); } else if (NameChoice.DELETE.equals(nameChoice)) { @@ -424,7 +423,7 @@ public class ValidateNameElementUtil { if (!StringUtils.isEmpty(dt)) { List<DeviceType> deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.APPROVED, false, null, null, null, null, null, mnemonicPathDevicestructure, null); - ExceptionUtil.validateConditionDataNotAvailableException(deviceTypes != null && deviceTypes.size() == 1, TextUtil.DEVICETYPE_IS_NOT_AVAILABLE, details, field); + ExceptionUtil.validateConditionDataNotAvailableException(ValidateUtil.isSize(deviceTypes, 1), TextUtil.DEVICETYPE_IS_NOT_AVAILABLE, details, field); deviceType = deviceTypes.get(0); } @@ -436,13 +435,13 @@ public class ValidateNameElementUtil { List<SystemGroup> systemGroups = holderRepositories.getSystemGroupRepository().readSystemGroups(Status.APPROVED, false, null, null, null, null, mnemonicPathSystemstructure, null); - if (subsystems != null && subsystems.size() == 1) { + if (ValidateUtil.isSize(subsystems, 1)) { subsystem = subsystems.get(0); derivedName = NameUtil.getName(subsystem, deviceType, NamingConventionUtil.extractInstanceIndex(name), holder); - } else if (systems != null && systems.size() == 1) { + } else if (ValidateUtil.isSize(systems, 1)) { system = systems.get(0); derivedName = NameUtil.getName(system, deviceType, NamingConventionUtil.extractInstanceIndex(name), holder); - } else if (systemGroups != null && systemGroups.size() == 1) { + } else if (ValidateUtil.isSize(systemGroups, 1)) { systemGroup = systemGroups.get(0); derivedName = NameUtil.getName(systemGroup, deviceType, NamingConventionUtil.extractInstanceIndex(name), holder); } else { diff --git a/src/main/java/org/openepics/names/util/ValidateStructureElementUtil.java b/src/main/java/org/openepics/names/util/ValidateStructureElementUtil.java index 059d405c952557a2546c04a558aece08c41b9369..3c2193e94f734087160c1cedcedb5bf50685c18f 100644 --- a/src/main/java/org/openepics/names/util/ValidateStructureElementUtil.java +++ b/src/main/java/org/openepics/names/util/ValidateStructureElementUtil.java @@ -486,7 +486,7 @@ public class ValidateStructureElementUtil { message = TextUtil.DISCIPLINE_IS_NOT_CORRECT; List<Discipline> disciplines = holderRepositories.getDisciplineRepository().readDisciplines(Status.APPROVED, false, parentUuid.toString(), null, null, null, null, null); - ExceptionUtil.validateConditionDataConflictException(disciplines != null && disciplines.size() == 1, message, details, TextUtil.PARENT); + ExceptionUtil.validateConditionDataConflictException(ValidateUtil.isSize(disciplines, 1), message, details, TextUtil.PARENT); // note rules for mnemonic for device group diff --git a/src/main/java/org/openepics/names/util/ValidateUtil.java b/src/main/java/org/openepics/names/util/ValidateUtil.java index 71c7f7b71c67bde90a2ecef9ac34ed5397d0c428..e376293667747e116895c7c2eeed053c222c8d4a 100644 --- a/src/main/java/org/openepics/names/util/ValidateUtil.java +++ b/src/main/java/org/openepics/names/util/ValidateUtil.java @@ -18,6 +18,7 @@ package org.openepics.names.util; +import java.util.Collection; import java.util.UUID; import org.apache.commons.lang3.StringUtils; @@ -175,4 +176,39 @@ public class ValidateUtil { } } + // ---------------------------------------------------------------------------------------------------- + + /** + * Validate that collection has given size. + * In practice, validate that collection is not null and has given size. + * + * @param collection collection + * @param size size + * @return boolean if validation is ok + */ + public static boolean isSize(Collection<?> collection, int size) { + return collection != null && collection.size() == size; + } + + /** + * Validate that collection is null or empty. + * + * @param collection collection + * @return boolean if validation is ok + */ + public static boolean isNullOrEmpty(Collection<?> collection) { + return collection == null || collection.isEmpty(); + } + + /** + * Validate that collection is null or does not have given size. + * + * @param collection collection + * @param size size + * @return boolean if validation is ok + */ + public static boolean isNullOrNotSize(Collection<?> collection, int size) { + return collection == null || collection.size() != size; + } + } diff --git a/src/test/java/org/openepics/names/util/ValidateUtilTest.java b/src/test/java/org/openepics/names/util/ValidateUtilTest.java index ca1d6d6db7e6cf002f70d1a10deb1da1500258c4..2dbaa8e077d95e3f588e537fedd32c38d185d45b 100644 --- a/src/test/java/org/openepics/names/util/ValidateUtilTest.java +++ b/src/test/java/org/openepics/names/util/ValidateUtilTest.java @@ -19,8 +19,12 @@ package org.openepics.names.util; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; +import java.util.ArrayList; +import java.util.List; import java.util.UUID; import org.junit.jupiter.api.Test; @@ -274,6 +278,82 @@ class ValidateUtilTest { ValidateUtil.validateInputUuid(UUID.randomUUID().toString()); } + /** + * Test of validate collection. + */ + @Test + void isSize() { + assertFalse(ValidateUtil.isSize(null, 0)); + assertFalse(ValidateUtil.isSize(null, 1)); + assertFalse(ValidateUtil.isSize(null, 2)); + + List<String> list = new ArrayList<>(); + + assertTrue (ValidateUtil.isSize(list, 0)); + assertFalse(ValidateUtil.isSize(list, 1)); + assertFalse(ValidateUtil.isSize(list, 2)); + + list.add("a"); + + assertFalse(ValidateUtil.isSize(list, 0)); + assertTrue (ValidateUtil.isSize(list, 1)); + assertFalse(ValidateUtil.isSize(list, 2)); + + list.add("b"); + + assertFalse(ValidateUtil.isSize(list, 0)); + assertFalse(ValidateUtil.isSize(list, 1)); + assertTrue (ValidateUtil.isSize(list, 2)); + } + + /** + * Test of validate collection. + */ + @Test + void isNullOrEmpty() { + assertTrue (ValidateUtil.isNullOrEmpty(null)); + + List<String> list = new ArrayList<>(); + + assertTrue (ValidateUtil.isNullOrEmpty(list)); + + list.add("a"); + + assertFalse(ValidateUtil.isNullOrEmpty(list)); + + list.add("b"); + + assertFalse(ValidateUtil.isNullOrEmpty(list)); + } + + /** + * Test of validate collection. + */ + @Test + void isNullOrNotSize() { + assertTrue (ValidateUtil.isNullOrNotSize(null, 0)); + assertTrue (ValidateUtil.isNullOrNotSize(null, 1)); + assertTrue (ValidateUtil.isNullOrNotSize(null, 2)); + + List<String> list = new ArrayList<>(); + + assertFalse(ValidateUtil.isNullOrNotSize(list, 0)); + assertTrue (ValidateUtil.isNullOrNotSize(list, 1)); + assertTrue (ValidateUtil.isNullOrNotSize(list, 2)); + + list.add("a"); + + assertTrue (ValidateUtil.isNullOrNotSize(list, 0)); + assertFalse(ValidateUtil.isNullOrNotSize(list, 1)); + assertTrue (ValidateUtil.isNullOrNotSize(list, 2)); + + list.add("b"); + + assertTrue (ValidateUtil.isNullOrNotSize(list, 0)); + assertTrue (ValidateUtil.isNullOrNotSize(list, 1)); + assertFalse(ValidateUtil.isNullOrNotSize(list, 2)); + } + // ---------------------------------------------------------------------------------------------------- /**