From d96e16d3b0e0907074377b671e4a0bb0d8daf5dc Mon Sep 17 00:00:00 2001 From: Lars Johansson <lars.johansson@ess.eu> Date: Wed, 14 Dec 2022 11:16:22 +0100 Subject: [PATCH] Update handling of mnemonic path Mnemonic path is ambiguous if considered in past. Therefore not show mnemonic path for history of structure. Show mnemonic path if latest and approved status. --- .../names/service/StructuresService.java | 81 ++++---- .../names/util/StructureElementUtil.java | 192 ++++++++++++------ 2 files changed, 162 insertions(+), 111 deletions(-) diff --git a/src/main/java/org/openepics/names/service/StructuresService.java b/src/main/java/org/openepics/names/service/StructuresService.java index e94bbf06..96497f68 100644 --- a/src/main/java/org/openepics/names/service/StructuresService.java +++ b/src/main/java/org/openepics/names/service/StructuresService.java @@ -151,9 +151,6 @@ public class StructuresService { LOGGER.log(Level.FINE, "createStructures, structureElements.size: {0}", Utilities.getSize(structureElements)); - // initiate holder of containers for system and device structure content, for performance reasons - HolderSystemDeviceStructure holder = new HolderSystemDeviceStructure(holderIRepositories); - // do Date requested = new Date(); String requestedBy = TextUtil.TEST_WHO; @@ -181,7 +178,7 @@ public class StructuresService { holderRepositories.getSystemGroupRepository().createSystemGroup(systemGroup); // add - createdStructureElements.add(StructureElementUtil.getStructureElementRequested(systemGroup, holder)); + createdStructureElements.add(StructureElementUtil.getStructureElementRequested(systemGroup)); } else if (Type.SYSTEM.equals(structureElement.getType())) { // create System system = new System(uuid, structureElement.getParent(), @@ -191,7 +188,7 @@ public class StructuresService { holderRepositories.getSystemRepository().createSystem(system); // add - createdStructureElements.add(StructureElementUtil.getStructureElementRequested(system, holder)); + createdStructureElements.add(StructureElementUtil.getStructureElementRequested(system)); } else if (Type.SUBSYSTEM.equals(structureElement.getType())) { // create Subsystem subsystem = new Subsystem(uuid, structureElement.getParent(), @@ -201,7 +198,7 @@ public class StructuresService { holderRepositories.getSubsystemRepository().createSubsystem(subsystem); // add - createdStructureElements.add(StructureElementUtil.getStructureElementRequested(subsystem, holder)); + createdStructureElements.add(StructureElementUtil.getStructureElementRequested(subsystem)); } else if (Type.DISCIPLINE.equals(structureElement.getType())) { // create Discipline discipline = new Discipline(uuid, @@ -211,7 +208,7 @@ public class StructuresService { holderRepositories.getDisciplineRepository().createDiscipline(discipline); // add - createdStructureElements.add(StructureElementUtil.getStructureElementRequested(discipline, holder)); + createdStructureElements.add(StructureElementUtil.getStructureElementRequested(discipline)); } else if (Type.DEVICEGROUP.equals(structureElement.getType())) { // note rules for mnemonic for device group @@ -223,7 +220,7 @@ public class StructuresService { holderRepositories.getDeviceGroupRepository().createDeviceGroup(deviceGroup); // add - createdStructureElements.add(StructureElementUtil.getStructureElementRequested(deviceGroup, holder)); + createdStructureElements.add(StructureElementUtil.getStructureElementRequested(deviceGroup)); } else if (Type.DEVICETYPE.equals(structureElement.getType())) { // create DeviceType deviceType = new DeviceType(uuid, structureElement.getParent(), @@ -233,7 +230,7 @@ public class StructuresService { holderRepositories.getDeviceTypeRepository().createDeviceType(deviceType); // add - createdStructureElements.add(StructureElementUtil.getStructureElementRequested(deviceType, holder)); + createdStructureElements.add(StructureElementUtil.getStructureElementRequested(deviceType)); } } @@ -811,9 +808,6 @@ public class StructuresService { LOGGER.log(Level.FINE, "updateStructures, structureElements.size: {0}", Utilities.getSize(structureElements)); - // initiate holder of containers for system and device structure content, for performance reasons - HolderSystemDeviceStructure holder = new HolderSystemDeviceStructure(holderIRepositories); - // do Date requested = new Date(); String requestedBy = TextUtil.TEST_WHO; @@ -841,7 +835,7 @@ public class StructuresService { holderRepositories.getSystemGroupRepository().createSystemGroup(systemGroup); // add - updatedStructureElements.add(StructureElementUtil.getStructureElementRequested(systemGroup, holder)); + updatedStructureElements.add(StructureElementUtil.getStructureElementRequested(systemGroup)); } else if (Type.SYSTEM.equals(structureElement.getType())) { // create System system = new System(uuid, structureElement.getParent(), @@ -851,7 +845,7 @@ public class StructuresService { holderRepositories.getSystemRepository().createSystem(system); // add - updatedStructureElements.add(StructureElementUtil.getStructureElementRequested(system, holder)); + updatedStructureElements.add(StructureElementUtil.getStructureElementRequested(system)); } else if (Type.SUBSYSTEM.equals(structureElement.getType())) { // create Subsystem subsystem = new Subsystem(uuid, structureElement.getParent(), @@ -861,7 +855,7 @@ public class StructuresService { holderRepositories.getSubsystemRepository().createSubsystem(subsystem); // add - updatedStructureElements.add(StructureElementUtil.getStructureElementRequested(subsystem, holder)); + updatedStructureElements.add(StructureElementUtil.getStructureElementRequested(subsystem)); } else if (Type.DISCIPLINE.equals(structureElement.getType())) { // create Discipline discipline = new Discipline(uuid, @@ -871,7 +865,7 @@ public class StructuresService { holderRepositories.getDisciplineRepository().createDiscipline(discipline); // add - updatedStructureElements.add(StructureElementUtil.getStructureElementRequested(discipline, holder)); + updatedStructureElements.add(StructureElementUtil.getStructureElementRequested(discipline)); } else if (Type.DEVICEGROUP.equals(structureElement.getType())) { // note rules for mnemonic for device group @@ -883,7 +877,7 @@ public class StructuresService { holderRepositories.getDeviceGroupRepository().createDeviceGroup(deviceGroup); // add - updatedStructureElements.add(StructureElementUtil.getStructureElementRequested(deviceGroup, holder)); + updatedStructureElements.add(StructureElementUtil.getStructureElementRequested(deviceGroup)); } else if (Type.DEVICETYPE.equals(structureElement.getType())) { // create DeviceType deviceType = new DeviceType(uuid, structureElement.getParent(), @@ -893,7 +887,7 @@ public class StructuresService { holderRepositories.getDeviceTypeRepository().createDeviceType(deviceType); // add - updatedStructureElements.add(StructureElementUtil.getStructureElementRequested(deviceType, holder)); + updatedStructureElements.add(StructureElementUtil.getStructureElementRequested(deviceType)); } } @@ -918,9 +912,6 @@ public class StructuresService { LOGGER.log(Level.FINE, "deleteStructures, structureElements.size: {0}", Utilities.getSize(structureElements)); - // initiate holder of containers for system and device structure content, for performance reasons - HolderSystemDeviceStructure holder = new HolderSystemDeviceStructure(holderIRepositories); - // do Date requested = new Date(); String requestedBy = TextUtil.TEST_WHO; @@ -944,7 +935,7 @@ public class StructuresService { holderRepositories.getSystemGroupRepository().createSystemGroup(systemGroup); // add - deletedStructureElements.add(StructureElementUtil.getStructureElementRequested(systemGroup, holder)); + deletedStructureElements.add(StructureElementUtil.getStructureElementRequested(systemGroup)); } else if (Type.SYSTEM.equals(structureElement.getType())) { // find List<System> systems = holderRepositories.getSystemRepository().readSystems(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); @@ -961,7 +952,7 @@ public class StructuresService { holderRepositories.getSystemRepository().createSystem(system); // add - deletedStructureElements.add(StructureElementUtil.getStructureElementRequested(system, holder)); + deletedStructureElements.add(StructureElementUtil.getStructureElementRequested(system)); } else if (Type.SUBSYSTEM.equals(structureElement.getType())) { // find List<Subsystem> subsystems = holderRepositories.getSubsystemRepository().readSubsystems(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); @@ -978,7 +969,7 @@ public class StructuresService { holderRepositories.getSubsystemRepository().createSubsystem(subsystem); // add - deletedStructureElements.add(StructureElementUtil.getStructureElementRequested(subsystem, holder)); + deletedStructureElements.add(StructureElementUtil.getStructureElementRequested(subsystem)); } else if (Type.DISCIPLINE.equals(structureElement.getType())) { // find List<Discipline> disciplines = holderRepositories.getDisciplineRepository().readDisciplines(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null); @@ -995,7 +986,7 @@ public class StructuresService { holderRepositories.getDisciplineRepository().createDiscipline(discipline); // add - deletedStructureElements.add(StructureElementUtil.getStructureElementRequested(discipline, holder)); + deletedStructureElements.add(StructureElementUtil.getStructureElementRequested(discipline)); } else if (Type.DEVICEGROUP.equals(structureElement.getType())) { // find List<DeviceGroup> deviceGroups = holderRepositories.getDeviceGroupRepository().readDeviceGroups(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); @@ -1012,7 +1003,7 @@ public class StructuresService { holderRepositories.getDeviceGroupRepository().createDeviceGroup(deviceGroup); // add - deletedStructureElements.add(StructureElementUtil.getStructureElementRequested(deviceGroup, holder)); + deletedStructureElements.add(StructureElementUtil.getStructureElementRequested(deviceGroup)); } else if (Type.DEVICETYPE.equals(structureElement.getType())) { // find List<DeviceType> deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); @@ -1029,7 +1020,7 @@ public class StructuresService { holderRepositories.getDeviceTypeRepository().createDeviceType(deviceType); // add - deletedStructureElements.add(StructureElementUtil.getStructureElementRequested(deviceType, holder)); + deletedStructureElements.add(StructureElementUtil.getStructureElementRequested(deviceType)); } } @@ -1117,7 +1108,7 @@ public class StructuresService { } // add - approvedStructureElements.add(StructureElementUtil.getStructureElementProcessed(systemGroup, holder)); + approvedStructureElements.add(StructureElementUtil.getStructureElementProcessed(systemGroup, holder, StructureChoice.STRUCTURE)); } else if (Type.SYSTEM.equals(structureElement.getType())) { // find List<System> systems = holderRepositories.getSystemRepository().readSystems(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); @@ -1156,7 +1147,7 @@ public class StructuresService { } // add - approvedStructureElements.add(StructureElementUtil.getStructureElementProcessed(system, holder)); + approvedStructureElements.add(StructureElementUtil.getStructureElementProcessed(system, holder, StructureChoice.STRUCTURE)); } else if (Type.SUBSYSTEM.equals(structureElement.getType())) { // find List<Subsystem> subsystems = holderRepositories.getSubsystemRepository().readSubsystems(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); @@ -1195,7 +1186,7 @@ public class StructuresService { } // add - approvedStructureElements.add(StructureElementUtil.getStructureElementProcessed(subsystem, holder)); + approvedStructureElements.add(StructureElementUtil.getStructureElementProcessed(subsystem, holder, StructureChoice.STRUCTURE)); } else if (Type.DISCIPLINE.equals(structureElement.getType())) { List<Discipline> disciplines = holderRepositories.getDisciplineRepository().readDisciplines(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null); Discipline discipline = null; @@ -1220,7 +1211,7 @@ public class StructuresService { holderRepositories.getDisciplineRepository().updateDiscipline(discipline); // add - approvedStructureElements.add(StructureElementUtil.getStructureElementProcessed(discipline, holder)); + approvedStructureElements.add(StructureElementUtil.getStructureElementProcessed(discipline, holder, StructureChoice.STRUCTURE)); } else if (Type.DEVICEGROUP.equals(structureElement.getType())) { // find List<DeviceGroup> deviceGroups = holderRepositories.getDeviceGroupRepository().readDeviceGroups(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); @@ -1246,7 +1237,7 @@ public class StructuresService { holderRepositories.getDeviceGroupRepository().updateDeviceGroup(deviceGroup); // add - approvedStructureElements.add(StructureElementUtil.getStructureElementProcessed(deviceGroup, holder)); + approvedStructureElements.add(StructureElementUtil.getStructureElementProcessed(deviceGroup, holder, StructureChoice.STRUCTURE)); } else if (Type.DEVICETYPE.equals(structureElement.getType())) { // find List<DeviceType> deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.APPROVED, Boolean.FALSE, queryValue, null, null, null, null, null, null); @@ -1272,7 +1263,7 @@ public class StructuresService { holderRepositories.getDeviceTypeRepository().updateDeviceType(deviceType); // add - approvedStructureElements.add(StructureElementUtil.getStructureElementProcessed(deviceType, holder)); + approvedStructureElements.add(StructureElementUtil.getStructureElementProcessed(deviceType, holder, StructureChoice.STRUCTURE)); } } @@ -1319,7 +1310,7 @@ public class StructuresService { holderRepositories.getSystemGroupRepository().updateSystemGroup(systemGroup); // add - cancelledStructureElements.add(StructureElementUtil.getStructureElementProcessed(systemGroup, holder)); + cancelledStructureElements.add(StructureElementUtil.getStructureElementProcessed(systemGroup, holder, StructureChoice.STRUCTURE)); } else if (Type.SYSTEM.equals(structureElement.getType())) { // find List<System> systems = holderRepositories.getSystemRepository().readSystems(Status.PENDING, null, queryValue, null, null, null, null, null, null); @@ -1333,7 +1324,7 @@ public class StructuresService { holderRepositories.getSystemRepository().updateSystem(system); // add - cancelledStructureElements.add(StructureElementUtil.getStructureElementProcessed(system, holder)); + cancelledStructureElements.add(StructureElementUtil.getStructureElementProcessed(system, holder, StructureChoice.STRUCTURE)); } else if (Type.SUBSYSTEM.equals(structureElement.getType())) { // find List<Subsystem> subsystems = holderRepositories.getSubsystemRepository().readSubsystems(Status.PENDING, null, queryValue, null, null, null, null, null, null); @@ -1347,7 +1338,7 @@ public class StructuresService { holderRepositories.getSubsystemRepository().updateSubsystem(subsystem); // add - cancelledStructureElements.add(StructureElementUtil.getStructureElementProcessed(subsystem, holder)); + cancelledStructureElements.add(StructureElementUtil.getStructureElementProcessed(subsystem, holder, StructureChoice.STRUCTURE)); } else if (Type.DISCIPLINE.equals(structureElement.getType())) { // find List<Discipline> disciplines = holderRepositories.getDisciplineRepository().readDisciplines(Status.PENDING, null, queryValue, null, null, null, null, null); @@ -1361,7 +1352,7 @@ public class StructuresService { holderRepositories.getDisciplineRepository().updateDiscipline(discipline); // add - cancelledStructureElements.add(StructureElementUtil.getStructureElementProcessed(discipline, holder)); + cancelledStructureElements.add(StructureElementUtil.getStructureElementProcessed(discipline, holder, StructureChoice.STRUCTURE)); } else if (Type.DEVICEGROUP.equals(structureElement.getType())) { // find List<DeviceGroup> deviceGroups = holderRepositories.getDeviceGroupRepository().readDeviceGroups(Status.PENDING, null, queryValue, null, null, null, null, null, null); @@ -1375,7 +1366,7 @@ public class StructuresService { holderRepositories.getDeviceGroupRepository().updateDeviceGroup(deviceGroup); // add - cancelledStructureElements.add(StructureElementUtil.getStructureElementProcessed(deviceGroup, holder)); + cancelledStructureElements.add(StructureElementUtil.getStructureElementProcessed(deviceGroup, holder, StructureChoice.STRUCTURE)); } else if (Type.DEVICETYPE.equals(structureElement.getType())) { List<DeviceType> deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.PENDING, null, queryValue, null, null, null, null, null, null); if (ValidateUtil.isNullOrNotSize(deviceTypes, 1)) { @@ -1388,7 +1379,7 @@ public class StructuresService { holderRepositories.getDeviceTypeRepository().updateDeviceType(deviceType); // add - cancelledStructureElements.add(StructureElementUtil.getStructureElementProcessed(deviceType, holder)); + cancelledStructureElements.add(StructureElementUtil.getStructureElementProcessed(deviceType, holder, StructureChoice.STRUCTURE)); } } @@ -1435,7 +1426,7 @@ public class StructuresService { holderRepositories.getSystemGroupRepository().updateSystemGroup(systemGroup); // add - rejectedStructureElements.add(StructureElementUtil.getStructureElementProcessed(systemGroup, holder)); + rejectedStructureElements.add(StructureElementUtil.getStructureElementProcessed(systemGroup, holder, StructureChoice.STRUCTURE)); } else if (Type.SYSTEM.equals(structureElement.getType())) { // find List<System> systems = holderRepositories.getSystemRepository().readSystems(Status.PENDING, null, queryValue, null, null, null, null, null, null); @@ -1449,7 +1440,7 @@ public class StructuresService { holderRepositories.getSystemRepository().updateSystem(system); // add - rejectedStructureElements.add(StructureElementUtil.getStructureElementProcessed(system, holder)); + rejectedStructureElements.add(StructureElementUtil.getStructureElementProcessed(system, holder, StructureChoice.STRUCTURE)); } else if (Type.SUBSYSTEM.equals(structureElement.getType())) { // find List<Subsystem> subsystems = holderRepositories.getSubsystemRepository().readSubsystems(Status.PENDING, null, queryValue, null, null, null, null, null, null); @@ -1463,7 +1454,7 @@ public class StructuresService { holderRepositories.getSubsystemRepository().updateSubsystem(subsystem); // add - rejectedStructureElements.add(StructureElementUtil.getStructureElementProcessed(subsystem, holder)); + rejectedStructureElements.add(StructureElementUtil.getStructureElementProcessed(subsystem, holder, StructureChoice.STRUCTURE)); } else if (Type.DISCIPLINE.equals(structureElement.getType())) { // find List<Discipline> disciplines = holderRepositories.getDisciplineRepository().readDisciplines(Status.PENDING, null, queryValue, null, null, null, null, null); @@ -1477,7 +1468,7 @@ public class StructuresService { holderRepositories.getDisciplineRepository().updateDiscipline(discipline); // add - rejectedStructureElements.add(StructureElementUtil.getStructureElementProcessed(discipline, holder)); + rejectedStructureElements.add(StructureElementUtil.getStructureElementProcessed(discipline, holder, StructureChoice.STRUCTURE)); } else if (Type.DEVICEGROUP.equals(structureElement.getType())) { // find List<DeviceGroup> deviceGroups = holderRepositories.getDeviceGroupRepository().readDeviceGroups(Status.PENDING, null, queryValue, null, null, null, null, null, null); @@ -1491,7 +1482,7 @@ public class StructuresService { holderRepositories.getDeviceGroupRepository().updateDeviceGroup(deviceGroup); // add - rejectedStructureElements.add(StructureElementUtil.getStructureElementProcessed(deviceGroup, holder)); + rejectedStructureElements.add(StructureElementUtil.getStructureElementProcessed(deviceGroup, holder, StructureChoice.STRUCTURE)); } else if (Type.DEVICETYPE.equals(structureElement.getType())) { // find List<DeviceType> deviceTypes = holderRepositories.getDeviceTypeRepository().readDeviceTypes(Status.PENDING, null, queryValue, null, null, null, null, null, null); @@ -1505,7 +1496,7 @@ public class StructuresService { holderRepositories.getDeviceTypeRepository().updateDeviceType(deviceType); // add - rejectedStructureElements.add(StructureElementUtil.getStructureElementProcessed(deviceType, holder)); + rejectedStructureElements.add(StructureElementUtil.getStructureElementProcessed(deviceType, holder, StructureChoice.STRUCTURE)); } } diff --git a/src/main/java/org/openepics/names/util/StructureElementUtil.java b/src/main/java/org/openepics/names/util/StructureElementUtil.java index d18a09fc..e98422b3 100644 --- a/src/main/java/org/openepics/names/util/StructureElementUtil.java +++ b/src/main/java/org/openepics/names/util/StructureElementUtil.java @@ -74,18 +74,18 @@ public class StructureElementUtil { if (StructureChoice.HISTORY.equals(structureChoice)) { if (systemGroup.getProcessed() != null && ((systemGroup.getProcessed().getTime() - systemGroup.getRequested().getTime()) > THOUSAND_MILLISECONDS)) { - structureElements.add(getStructureElementRequested(systemGroup, holderSystemDeviceStructure)); - structureElements.add(getStructureElementProcessed(systemGroup, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(systemGroup)); + structureElements.add(getStructureElementProcessed(systemGroup, holderSystemDeviceStructure, structureChoice)); } else if (systemGroup.getProcessed() != null && ((systemGroup.getProcessed().getTime() - systemGroup.getRequested().getTime()) <= THOUSAND_MILLISECONDS)) { - structureElements.add(getStructureElementProcessed(systemGroup, holderSystemDeviceStructure)); + structureElements.add(getStructureElementProcessed(systemGroup, holderSystemDeviceStructure, structureChoice)); } else { - structureElements.add(getStructureElementRequested(systemGroup, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(systemGroup)); } } else { if (Status.PENDING.equals(systemGroup.getStatus())) { - structureElements.add(getStructureElementRequested(systemGroup, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(systemGroup)); } else { - structureElements.add(getStructureElementProcessed(systemGroup, holderSystemDeviceStructure)); + structureElements.add(getStructureElementProcessed(systemGroup, holderSystemDeviceStructure, structureChoice)); } } } @@ -112,18 +112,18 @@ public class StructureElementUtil { if (StructureChoice.HISTORY.equals(structureChoice)) { if (system.getProcessed() != null && ((system.getProcessed().getTime() - system.getRequested().getTime()) > THOUSAND_MILLISECONDS)) { - structureElements.add(getStructureElementRequested(system, holderSystemDeviceStructure)); - structureElements.add(getStructureElementProcessed(system, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(system)); + structureElements.add(getStructureElementProcessed(system, holderSystemDeviceStructure, structureChoice)); } else if (system.getProcessed() != null && ((system.getProcessed().getTime() - system.getRequested().getTime()) <= THOUSAND_MILLISECONDS)) { - structureElements.add(getStructureElementProcessed(system, holderSystemDeviceStructure)); + structureElements.add(getStructureElementProcessed(system, holderSystemDeviceStructure, structureChoice)); } else { - structureElements.add(getStructureElementRequested(system, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(system)); } } else { if (Status.PENDING.equals(system.getStatus())) { - structureElements.add(getStructureElementRequested(system, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(system)); } else { - structureElements.add(getStructureElementProcessed(system, holderSystemDeviceStructure)); + structureElements.add(getStructureElementProcessed(system, holderSystemDeviceStructure, structureChoice)); } } } @@ -150,18 +150,18 @@ public class StructureElementUtil { if (StructureChoice.HISTORY.equals(structureChoice)) { if (subsystem.getProcessed() != null && ((subsystem.getProcessed().getTime() - subsystem.getRequested().getTime()) > THOUSAND_MILLISECONDS)) { - structureElements.add(getStructureElementRequested(subsystem, holderSystemDeviceStructure)); - structureElements.add(getStructureElementProcessed(subsystem, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(subsystem)); + structureElements.add(getStructureElementProcessed(subsystem, holderSystemDeviceStructure, structureChoice)); } else if (subsystem.getProcessed() != null && ((subsystem.getProcessed().getTime() - subsystem.getRequested().getTime()) <= THOUSAND_MILLISECONDS)) { - structureElements.add(getStructureElementProcessed(subsystem, holderSystemDeviceStructure)); + structureElements.add(getStructureElementProcessed(subsystem, holderSystemDeviceStructure, structureChoice)); } else { - structureElements.add(getStructureElementRequested(subsystem, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(subsystem)); } } else { if (Status.PENDING.equals(subsystem.getStatus())) { - structureElements.add(getStructureElementRequested(subsystem, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(subsystem)); } else { - structureElements.add(getStructureElementProcessed(subsystem, holderSystemDeviceStructure)); + structureElements.add(getStructureElementProcessed(subsystem, holderSystemDeviceStructure, structureChoice)); } } } @@ -189,18 +189,18 @@ public class StructureElementUtil { if (StructureChoice.HISTORY.equals(structureChoice)) { if (discipline.getProcessed() != null && ((discipline.getProcessed().getTime() - discipline.getRequested().getTime()) > THOUSAND_MILLISECONDS)) { - structureElements.add(getStructureElementRequested(discipline, holderSystemDeviceStructure)); - structureElements.add(getStructureElementProcessed(discipline, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(discipline)); + structureElements.add(getStructureElementProcessed(discipline, holderSystemDeviceStructure, structureChoice)); } else if (discipline.getProcessed() != null && ((discipline.getProcessed().getTime() - discipline.getRequested().getTime()) <= THOUSAND_MILLISECONDS)) { - structureElements.add(getStructureElementProcessed(discipline, holderSystemDeviceStructure)); + structureElements.add(getStructureElementProcessed(discipline, holderSystemDeviceStructure, structureChoice)); } else { - structureElements.add(getStructureElementRequested(discipline, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(discipline)); } } else { if (Status.PENDING.equals(discipline.getStatus())) { - structureElements.add(getStructureElementRequested(discipline, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(discipline)); } else { - structureElements.add(getStructureElementProcessed(discipline, holderSystemDeviceStructure)); + structureElements.add(getStructureElementProcessed(discipline, holderSystemDeviceStructure, structureChoice)); } } } @@ -227,18 +227,18 @@ public class StructureElementUtil { if (StructureChoice.HISTORY.equals(structureChoice)) { if (deviceGroup.getProcessed() != null && ((deviceGroup.getProcessed().getTime() - deviceGroup.getRequested().getTime()) > THOUSAND_MILLISECONDS)) { - structureElements.add(getStructureElementRequested(deviceGroup, holderSystemDeviceStructure)); - structureElements.add(getStructureElementProcessed(deviceGroup, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(deviceGroup)); + structureElements.add(getStructureElementProcessed(deviceGroup, holderSystemDeviceStructure, structureChoice)); } else if (deviceGroup.getProcessed() != null && ((deviceGroup.getProcessed().getTime() - deviceGroup.getRequested().getTime()) <= THOUSAND_MILLISECONDS)) { - structureElements.add(getStructureElementProcessed(deviceGroup, holderSystemDeviceStructure)); + structureElements.add(getStructureElementProcessed(deviceGroup, holderSystemDeviceStructure, structureChoice)); } else { - structureElements.add(getStructureElementRequested(deviceGroup, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(deviceGroup)); } } else { if (Status.PENDING.equals(deviceGroup.getStatus())) { - structureElements.add(getStructureElementRequested(deviceGroup, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(deviceGroup)); } else { - structureElements.add(getStructureElementProcessed(deviceGroup, holderSystemDeviceStructure)); + structureElements.add(getStructureElementProcessed(deviceGroup, holderSystemDeviceStructure, structureChoice)); } } } @@ -265,18 +265,18 @@ public class StructureElementUtil { if (StructureChoice.HISTORY.equals(structureChoice)) { if (deviceType.getProcessed() != null && ((deviceType.getProcessed().getTime() - deviceType.getRequested().getTime()) > THOUSAND_MILLISECONDS)) { - structureElements.add(getStructureElementRequested(deviceType, holderSystemDeviceStructure)); - structureElements.add(getStructureElementProcessed(deviceType, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(deviceType)); + structureElements.add(getStructureElementProcessed(deviceType, holderSystemDeviceStructure, structureChoice)); } else if (deviceType.getProcessed() != null && ((deviceType.getProcessed().getTime() - deviceType.getRequested().getTime()) <= THOUSAND_MILLISECONDS)) { - structureElements.add(getStructureElementProcessed(deviceType, holderSystemDeviceStructure)); + structureElements.add(getStructureElementProcessed(deviceType, holderSystemDeviceStructure, structureChoice)); } else { - structureElements.add(getStructureElementRequested(deviceType, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(deviceType)); } } else { if (Status.PENDING.equals(deviceType.getStatus())) { - structureElements.add(getStructureElementRequested(deviceType, holderSystemDeviceStructure)); + structureElements.add(getStructureElementRequested(deviceType)); } else { - structureElements.add(getStructureElementProcessed(deviceType, holderSystemDeviceStructure)); + structureElements.add(getStructureElementProcessed(deviceType, holderSystemDeviceStructure, structureChoice)); } } } @@ -287,15 +287,18 @@ public class StructureElementUtil { * Populate and return structure element for system group with focus on requested. * * @param systemGroup system group - * @param holderSystemDeviceStructure holder of containers for system and device structure content * @return structure element */ - public static StructureElement getStructureElementRequested(SystemGroup systemGroup, HolderSystemDeviceStructure holderSystemDeviceStructure) { + public static StructureElement getStructureElementRequested(SystemGroup systemGroup) { if (systemGroup == null) { return null; } - String mnemonicpath = StructureUtil.getMnemonicPath(systemGroup, holderSystemDeviceStructure); + // mnemonic path + // ambiguous if considered in past (requested, processed) + // not for history of structure + // for latest & approved status + String mnemonicpath = null; return getStructureElement( Type.SYSTEMGROUP, @@ -310,14 +313,21 @@ public class StructureElementUtil { * * @param systemGroup system group * @param holderSystemDeviceStructure holder of containers for system and device structure content + * @param structureChoice whether to consider content from structure perspective or history perspective * @return structure element */ - public static StructureElement getStructureElementProcessed(SystemGroup systemGroup, HolderSystemDeviceStructure holderSystemDeviceStructure) { + public static StructureElement getStructureElementProcessed(SystemGroup systemGroup, HolderSystemDeviceStructure holderSystemDeviceStructure, StructureChoice structureChoice) { if (systemGroup == null) { return null; } - String mnemonicpath = StructureUtil.getMnemonicPath(systemGroup, holderSystemDeviceStructure); + // mnemonic path + // ambiguous if considered in past (requested, processed) + // not history of structure + // latest & approved status + String mnemonicpath = StructureChoice.HISTORY.equals(structureChoice) || !(systemGroup.isLatest() && Status.APPROVED.equals(systemGroup.getStatus())) + ? null + : StructureUtil.getMnemonicPath(systemGroup, holderSystemDeviceStructure); return getStructureElement( Type.SYSTEMGROUP, @@ -331,15 +341,18 @@ public class StructureElementUtil { * Populate and return structure element for system group with focus on requested. * * @param system system - * @param holderSystemDeviceStructure holder of containers for system and device structure content * @return structure element */ - public static StructureElement getStructureElementRequested(System system, HolderSystemDeviceStructure holderSystemDeviceStructure) { + public static StructureElement getStructureElementRequested(System system) { if (system == null) { return null; } - String mnemonicpath = StructureUtil.getMnemonicPath(system, holderSystemDeviceStructure); + // mnemonic path + // ambiguous if considered in past (requested, processed) + // not history of structure + // latest & approved status + String mnemonicpath = null; return getStructureElement( Type.SYSTEM, @@ -354,14 +367,21 @@ public class StructureElementUtil { * * @param system system * @param holderSystemDeviceStructure holder of containers for system and device structure content + * @param structureChoice whether to consider content from structure perspective or history perspective * @return structure element */ - public static StructureElement getStructureElementProcessed(System system, HolderSystemDeviceStructure holderSystemDeviceStructure) { + public static StructureElement getStructureElementProcessed(System system, HolderSystemDeviceStructure holderSystemDeviceStructure, StructureChoice structureChoice) { if (system == null) { return null; } - String mnemonicpath = StructureUtil.getMnemonicPath(system, holderSystemDeviceStructure); + // mnemonic path + // ambiguous if considered in past (requested, processed) + // not history of structure + // latest & approved status + String mnemonicpath = StructureChoice.HISTORY.equals(structureChoice) || !(system.isLatest() && Status.APPROVED.equals(system.getStatus())) + ? null + : StructureUtil.getMnemonicPath(system, holderSystemDeviceStructure); return getStructureElement( Type.SYSTEM, @@ -375,15 +395,18 @@ public class StructureElementUtil { * Populate and return structure element for subsystem with focus on requested. * * @param subsystem subsystem - * @param holderSystemDeviceStructure holder of containers for system and device structure content * @return structure element */ - public static StructureElement getStructureElementRequested(Subsystem subsystem, HolderSystemDeviceStructure holderSystemDeviceStructure) { + public static StructureElement getStructureElementRequested(Subsystem subsystem) { if (subsystem == null) { return null; } - String mnemonicpath = StructureUtil.getMnemonicPath(subsystem, holderSystemDeviceStructure); + // mnemonic path + // ambiguous if considered in past (requested, processed) + // not history of structure + // latest & approved status + String mnemonicpath = null; return getStructureElement( Type.SUBSYSTEM, @@ -398,14 +421,21 @@ public class StructureElementUtil { * * @param subsystem subsystem * @param holderSystemDeviceStructure holder of containers for system and device structure content + * @param structureChoice whether to consider content from structure perspective or history perspective * @return structure element */ - public static StructureElement getStructureElementProcessed(Subsystem subsystem, HolderSystemDeviceStructure holderSystemDeviceStructure) { + public static StructureElement getStructureElementProcessed(Subsystem subsystem, HolderSystemDeviceStructure holderSystemDeviceStructure, StructureChoice structureChoice) { if (subsystem == null) { return null; } - String mnemonicpath = StructureUtil.getMnemonicPath(subsystem, holderSystemDeviceStructure); + // mnemonic path + // ambiguous if considered in past (requested, processed) + // not history of structure + // latest & approved status + String mnemonicpath = StructureChoice.HISTORY.equals(structureChoice) || !(subsystem.isLatest() && Status.APPROVED.equals(subsystem.getStatus())) + ? null + : StructureUtil.getMnemonicPath(subsystem, holderSystemDeviceStructure); return getStructureElement( Type.SUBSYSTEM, @@ -420,15 +450,18 @@ public class StructureElementUtil { * Populate and return structure element for discipline with focus on requested. * * @param discipline discipline - * @param holderSystemDeviceStructure holder of containers for system and device structure content * @return structure element */ - public static StructureElement getStructureElementRequested(Discipline discipline, HolderSystemDeviceStructure holderSystemDeviceStructure) { + public static StructureElement getStructureElementRequested(Discipline discipline) { if (discipline == null) { return null; } - String mnemonicpath = StructureUtil.getMnemonicPath(discipline, holderSystemDeviceStructure); + // mnemonic path + // ambiguous if considered in past (requested, processed) + // not history of structure + // latest & approved status + String mnemonicpath = null; return getStructureElement( Type.DISCIPLINE, @@ -443,14 +476,21 @@ public class StructureElementUtil { * * @param discipline discipline * @param holderSystemDeviceStructure holder of containers for system and device structure content + * @param structureChoice whether to consider content from structure perspective or history perspective * @return structure element */ - public static StructureElement getStructureElementProcessed(Discipline discipline, HolderSystemDeviceStructure holderSystemDeviceStructure) { + public static StructureElement getStructureElementProcessed(Discipline discipline, HolderSystemDeviceStructure holderSystemDeviceStructure, StructureChoice structureChoice) { if (discipline == null) { return null; } - String mnemonicpath = StructureUtil.getMnemonicPath(discipline, holderSystemDeviceStructure); + // mnemonic path + // ambiguous if considered in past (requested, processed) + // not history of structure + // latest & approved status + String mnemonicpath = StructureChoice.HISTORY.equals(structureChoice) || !(discipline.isLatest() && Status.APPROVED.equals(discipline.getStatus())) + ? null + : StructureUtil.getMnemonicPath(discipline, holderSystemDeviceStructure); return getStructureElement( Type.DISCIPLINE, @@ -464,15 +504,18 @@ public class StructureElementUtil { * Populate and return structure element for device group with focus on requested. * * @param deviceGroup device group - * @param holderSystemDeviceStructure holder of containers for system and device structure content * @return structure element */ - public static StructureElement getStructureElementRequested(DeviceGroup deviceGroup, HolderSystemDeviceStructure holderSystemDeviceStructure) { + public static StructureElement getStructureElementRequested(DeviceGroup deviceGroup) { if (deviceGroup == null) { return null; } - String mnemonicpath = StructureUtil.getMnemonicPath(deviceGroup, holderSystemDeviceStructure); + // mnemonic path + // ambiguous if considered in past (requested, processed) + // not history of structure + // latest & approved status + String mnemonicpath = null; return getStructureElement( Type.DEVICEGROUP, @@ -487,14 +530,21 @@ public class StructureElementUtil { * * @param deviceGroup device group * @param holderSystemDeviceStructure holder of containers for system and device structure content + * @param structureChoice whether to consider content from structure perspective or history perspective * @return structure element */ - public static StructureElement getStructureElementProcessed(DeviceGroup deviceGroup, HolderSystemDeviceStructure holderSystemDeviceStructure) { + public static StructureElement getStructureElementProcessed(DeviceGroup deviceGroup, HolderSystemDeviceStructure holderSystemDeviceStructure, StructureChoice structureChoice) { if (deviceGroup == null) { return null; } - String mnemonicpath = StructureUtil.getMnemonicPath(deviceGroup, holderSystemDeviceStructure); + // mnemonic path + // ambiguous if considered in past (requested, processed) + // not history of structure + // latest & approved status + String mnemonicpath = StructureChoice.HISTORY.equals(structureChoice) || !(deviceGroup.isLatest() && Status.APPROVED.equals(deviceGroup.getStatus())) + ? null + : StructureUtil.getMnemonicPath(deviceGroup, holderSystemDeviceStructure); return getStructureElement( Type.DEVICEGROUP, @@ -508,15 +558,18 @@ public class StructureElementUtil { * Populate and return structure element for device type with focus on requested. * * @param deviceType device type - * @param holderSystemDeviceStructure holder of containers for system and device structure content * @return structure element */ - public static StructureElement getStructureElementRequested(DeviceType deviceType, HolderSystemDeviceStructure holderSystemDeviceStructure) { + public static StructureElement getStructureElementRequested(DeviceType deviceType) { if (deviceType == null) { return null; } - String mnemonicpath = StructureUtil.getMnemonicPath(deviceType, holderSystemDeviceStructure); + // mnemonic path + // ambiguous if considered in past (requested, processed) + // not history of structure + // latest & approved status + String mnemonicpath = null; return getStructureElement( Type.DEVICETYPE, @@ -531,14 +584,21 @@ public class StructureElementUtil { * * @param deviceType device type * @param holderSystemDeviceStructure holder of containers for system and device structure content + * @param structureChoice whether to consider content from structure perspective or history perspective * @return structure element */ - public static StructureElement getStructureElementProcessed(DeviceType deviceType, HolderSystemDeviceStructure holderSystemDeviceStructure) { + public static StructureElement getStructureElementProcessed(DeviceType deviceType, HolderSystemDeviceStructure holderSystemDeviceStructure, StructureChoice structureChoice) { if (deviceType == null) { return null; } - String mnemonicpath = StructureUtil.getMnemonicPath(deviceType, holderSystemDeviceStructure); + // mnemonic path + // ambiguous if considered in past (requested, processed) + // not history of structure + // latest & approved status + String mnemonicpath = StructureChoice.HISTORY.equals(structureChoice) || !(deviceType.isLatest() && Status.APPROVED.equals(deviceType.getStatus())) + ? null + : StructureUtil.getMnemonicPath(deviceType, holderSystemDeviceStructure); return getStructureElement( Type.DEVICETYPE, -- GitLab