From 43048a3a2bd6fd814f4f356a17b7d521026ab888 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Tue, 29 Nov 2016 15:46:46 +0100 Subject: [PATCH] factored commonalities for regatta configuration DTO production for the different racing procedures Change-Id: I19e2e62cef59c114e2f884a29316c7f957db3e14 --- .../gwt/ui/server/SailingServiceImpl.java | 47 ++++++++++++------- .../gwt/ui/shared/DeviceConfigurationDTO.java | 8 ++-- 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index bc0ac82eab1..05d2df4ef21 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -118,6 +118,7 @@ import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.base.configuration.DeviceConfiguration; import com.sap.sailing.domain.base.configuration.DeviceConfigurationMatcher; +import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration; import com.sap.sailing.domain.base.configuration.RegattaConfiguration; import com.sap.sailing.domain.base.configuration.impl.DeviceConfigurationImpl; import com.sap.sailing.domain.base.configuration.impl.DeviceConfigurationMatcherSingle; @@ -127,6 +128,8 @@ import com.sap.sailing.domain.base.configuration.impl.LeagueConfigurationImpl; import com.sap.sailing.domain.base.configuration.impl.RRS26ConfigurationImpl; import com.sap.sailing.domain.base.configuration.impl.RacingProcedureConfigurationImpl; import com.sap.sailing.domain.base.configuration.impl.RegattaConfigurationImpl; +import com.sap.sailing.domain.base.configuration.impl.SWCConfigurationImpl; +import com.sap.sailing.domain.base.configuration.procedures.LineStartConfiguration; import com.sap.sailing.domain.base.impl.BoatImpl; import com.sap.sailing.domain.base.impl.CourseDataImpl; import com.sap.sailing.domain.base.impl.CourseImpl; @@ -309,6 +312,7 @@ import com.sap.sailing.gwt.ui.shared.CoursePositionsDTO; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO.RegattaConfigurationDTO; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO.RegattaConfigurationDTO.RacingProcedureConfigurationDTO; +import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO.RegattaConfigurationDTO.RacingProcedureWithConfigurableStartModeFlagConfigurationDTO; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationMatcherDTO; import com.sap.sailing.gwt.ui.shared.DeviceIdentifierDTO; import com.sap.sailing.gwt.ui.shared.DeviceMappingDTO; @@ -4852,39 +4856,44 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S if (configuration.getRRS26Configuration() != null) { dto.rrs26Configuration = new DeviceConfigurationDTO.RegattaConfigurationDTO.RRS26ConfigurationDTO(); - dto.rrs26Configuration.classFlag = configuration.getRRS26Configuration().getClassFlag(); - dto.rrs26Configuration.hasIndividualRecall = configuration.getRRS26Configuration().hasIndividualRecall(); - dto.rrs26Configuration.isResultEntryEnabled = configuration.getRRS26Configuration().isResultEntryEnabled(); - dto.rrs26Configuration.startModeFlags = configuration.getRRS26Configuration().getStartModeFlags(); + copyBasicRacingProcedureProperties(configuration.getRRS26Configuration(), dto.rrs26Configuration); + copyRacingProcedureWithConfigurableStartModeFlagProperties(configuration.getRRS26Configuration(), dto.rrs26Configuration); + } + if (configuration.getSWCConfiguration() != null) { + dto.swcStartConfiguration = new DeviceConfigurationDTO.RegattaConfigurationDTO.SWCStartConfigurationDTO(); + copyBasicRacingProcedureProperties(configuration.getSWCConfiguration(), dto.swcStartConfiguration); + copyRacingProcedureWithConfigurableStartModeFlagProperties(configuration.getSWCConfiguration(), dto.swcStartConfiguration); } if (configuration.getGateStartConfiguration() != null) { dto.gateStartConfiguration = new DeviceConfigurationDTO.RegattaConfigurationDTO.GateStartConfigurationDTO(); - dto.gateStartConfiguration.classFlag = configuration.getGateStartConfiguration().getClassFlag(); - dto.gateStartConfiguration.hasIndividualRecall = configuration.getGateStartConfiguration().hasIndividualRecall(); - dto.gateStartConfiguration.isResultEntryEnabled = configuration.getGateStartConfiguration().isResultEntryEnabled(); + copyBasicRacingProcedureProperties(configuration.getGateStartConfiguration(), dto.gateStartConfiguration); dto.gateStartConfiguration.hasPathfinder = configuration.getGateStartConfiguration().hasPathfinder(); dto.gateStartConfiguration.hasAdditionalGolfDownTime = configuration.getGateStartConfiguration().hasAdditionalGolfDownTime(); } if (configuration.getESSConfiguration() != null) { dto.essConfiguration = new DeviceConfigurationDTO.RegattaConfigurationDTO.ESSConfigurationDTO(); - dto.essConfiguration.classFlag = configuration.getESSConfiguration().getClassFlag(); - dto.essConfiguration.hasIndividualRecall = configuration.getESSConfiguration().hasIndividualRecall(); - dto.essConfiguration.isResultEntryEnabled = configuration.getESSConfiguration().isResultEntryEnabled(); + copyBasicRacingProcedureProperties(configuration.getESSConfiguration(), dto.essConfiguration); } if (configuration.getBasicConfiguration() != null) { dto.basicConfiguration = new DeviceConfigurationDTO.RegattaConfigurationDTO.RacingProcedureConfigurationDTO(); - dto.basicConfiguration.classFlag = configuration.getBasicConfiguration().getClassFlag(); - dto.basicConfiguration.hasIndividualRecall = configuration.getBasicConfiguration().hasIndividualRecall(); - dto.basicConfiguration.isResultEntryEnabled = configuration.getBasicConfiguration().isResultEntryEnabled(); + copyBasicRacingProcedureProperties(configuration.getBasicConfiguration(), dto.basicConfiguration); } if (configuration.getLeagueConfiguration() != null) { dto.leagueConfiguration = new DeviceConfigurationDTO.RegattaConfigurationDTO.LeagueConfigurationDTO(); - dto.leagueConfiguration.classFlag = configuration.getLeagueConfiguration().getClassFlag(); - dto.leagueConfiguration.hasIndividualRecall = configuration.getLeagueConfiguration().hasIndividualRecall(); - dto.leagueConfiguration.isResultEntryEnabled = configuration.getLeagueConfiguration().isResultEntryEnabled(); + copyBasicRacingProcedureProperties(configuration.getLeagueConfiguration(), dto.leagueConfiguration); } return dto; } + + private void copyBasicRacingProcedureProperties(RacingProcedureConfiguration configuration, final RacingProcedureConfigurationDTO racingProcedureConfigurationDTO) { + racingProcedureConfigurationDTO.classFlag = configuration.getClassFlag(); + racingProcedureConfigurationDTO.hasIndividualRecall = configuration.hasIndividualRecall(); + racingProcedureConfigurationDTO.isResultEntryEnabled = configuration.isResultEntryEnabled(); + } + + private void copyRacingProcedureWithConfigurableStartModeFlagProperties(LineStartConfiguration configuration, final RacingProcedureWithConfigurableStartModeFlagConfigurationDTO racingProcedureConfigurationDTO) { + racingProcedureConfigurationDTO.startModeFlags = configuration.getStartModeFlags(); + } private DeviceConfigurationImpl convertToDeviceConfiguration(DeviceConfigurationDTO dto) { DeviceConfigurationImpl configuration = new DeviceConfigurationImpl(convertToRegattaConfiguration(dto.regattaConfiguration)); @@ -4907,6 +4916,12 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S config.setStartModeFlags(dto.rrs26Configuration.startModeFlags); configuration.setRRS26Configuration(config); } + if (dto.swcStartConfiguration != null) { + SWCConfigurationImpl config = new SWCConfigurationImpl(); + applyGeneralRacingProcedureConfigProperties(dto.swcStartConfiguration, config); + config.setStartModeFlags(dto.swcStartConfiguration.startModeFlags); + configuration.setSWCConfiguration(config); + } if (dto.gateStartConfiguration != null) { GateStartConfigurationImpl config = new GateStartConfigurationImpl(); applyGeneralRacingProcedureConfigProperties(dto.gateStartConfiguration, config); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DeviceConfigurationDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DeviceConfigurationDTO.java index 17cd584c1fd..4a8244a7f72 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DeviceConfigurationDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DeviceConfigurationDTO.java @@ -10,12 +10,14 @@ import com.sap.sailing.domain.common.racelog.RacingProcedureType; public class DeviceConfigurationDTO implements IsSerializable { public static class RegattaConfigurationDTO implements IsSerializable { - public static class RRS26ConfigurationDTO extends RacingProcedureConfigurationDTO { + public static class RacingProcedureWithConfigurableStartModeFlagConfigurationDTO extends RacingProcedureConfigurationDTO { public List startModeFlags; } + + public static class RRS26ConfigurationDTO extends RacingProcedureWithConfigurableStartModeFlagConfigurationDTO { + } - public static class SWCStartConfigurationDTO extends RacingProcedureConfigurationDTO { - public List startModeFlags; + public static class SWCStartConfigurationDTO extends RacingProcedureWithConfigurableStartModeFlagConfigurationDTO { } public static class GateStartConfigurationDTO extends RacingProcedureConfigurationDTO {