mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-25 05:23:51 +00:00
removed defensive cloning, as settings are defined as immutable, and sideeffects should not be possible
This commit is contained in:
1 parent
cf3cb0931b
commit
86587b1856
17 files changed
+7
-95
No files matched your search
+1
-6
@@ -14,7 +14,7 @@ public class SAPHeaderComponentLifecycle implements ComponentLifecycle<SAPHeader
|
||||
|
||||
@Override
|
||||
public SAPHeaderComponentSettingsDialogComponent getSettingsDialogComponent(SAPHeaderComponentSettings settings) {
|
||||
return new SAPHeaderComponentSettingsDialogComponent(cloneSettings(settings), stringMessages);
|
||||
return new SAPHeaderComponentSettingsDialogComponent(settings, stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -22,11 +22,6 @@ public class SAPHeaderComponentLifecycle implements ComponentLifecycle<SAPHeader
|
||||
return new SAPHeaderComponentSettings(defaultTitle);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SAPHeaderComponentSettings cloneSettings(SAPHeaderComponentSettings settings) {
|
||||
return new SAPHeaderComponentSettings(settings.getTitle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return "SAP Header";
|
||||
|
||||
-6
@@ -57,12 +57,6 @@ public class LeaderboardWithHeaderPerspectiveLifecycle extends AbstractPerspecti
|
||||
return "LeaderboardWithHeader";
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardWithHeaderPerspectiveSettings clonePerspectiveOwnSettings(
|
||||
LeaderboardWithHeaderPerspectiveSettings settings) {
|
||||
return new LeaderboardWithHeaderPerspectiveSettings(settings.isLeaderboardAutoZoom(), settings.getLeaderboardZoomFactor());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected LeaderboardWithHeaderPerspectiveSettings extractOwnGlobalSettings(
|
||||
LeaderboardWithHeaderPerspectiveSettings settings) {
|
||||
|
||||
+1
-6
@@ -12,7 +12,7 @@ public class RaceTimePanelLifecycle implements
|
||||
|
||||
@Override
|
||||
public RaceTimePanelSettingsDialogComponent getSettingsDialogComponent(RaceTimePanelSettings settings) {
|
||||
return new RaceTimePanelSettingsDialogComponent(cloneSettings(settings), stringMessages);
|
||||
return new RaceTimePanelSettingsDialogComponent(settings, stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -20,11 +20,6 @@ public class RaceTimePanelLifecycle implements
|
||||
return new RaceTimePanelSettings();
|
||||
}
|
||||
|
||||
@Override
|
||||
public RaceTimePanelSettings cloneSettings(RaceTimePanelSettings settings) {
|
||||
return new RaceTimePanelSettings(settings.getRefreshInterval());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return "TimePanel";
|
||||
|
||||
-5
@@ -21,11 +21,6 @@ public class MediaPlayerLifecycle implements ComponentLifecycle<MediaPlayerSetti
|
||||
return MediaPlayerSettings.readSettingsFromURL();
|
||||
}
|
||||
|
||||
@Override
|
||||
public MediaPlayerSettings cloneSettings(MediaPlayerSettings settings) {
|
||||
return new MediaPlayerSettings(settings.isAutoSelectMedia());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return stringMessages.videoComponentShortName();
|
||||
|
||||
+1
-1
@@ -747,7 +747,7 @@ public class MediaPlayerManagerComponent extends AbstractComponent<MediaPlayerSe
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<MediaPlayerSettings> getSettingsDialogComponent() {
|
||||
return mediaPlayerLifecycle.getSettingsDialogComponent(mediaPlayerLifecycle.cloneSettings(settings));
|
||||
return mediaPlayerLifecycle.getSettingsDialogComponent(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
-5
@@ -22,11 +22,6 @@ public class MultiCompetitorRaceChartLifecycle implements ComponentLifecycle<Mul
|
||||
return new MultiCompetitorRaceChartSettings();
|
||||
}
|
||||
|
||||
@Override
|
||||
public MultiCompetitorRaceChartSettings cloneSettings(MultiCompetitorRaceChartSettings settings) {
|
||||
return new MultiCompetitorRaceChartSettings(new ChartSettings(settings.getStepSizeInMillis()), settings.getFirstDetailType(), settings.getSecondDetailType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return stringMessages.competitorCharts();
|
||||
|
||||
+1
-1
@@ -431,7 +431,7 @@ public class WindChart extends AbstractRaceChart<WindChartSettings> implements R
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<WindChartSettings> getSettingsDialogComponent() {
|
||||
return windChartLifecycle.getSettingsDialogComponent(windChartLifecycle.cloneSettings(settings));
|
||||
return windChartLifecycle.getSettingsDialogComponent(settings);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
-7
@@ -20,13 +20,6 @@ public class WindChartLifecycle implements ComponentLifecycle<WindChartSettings,
|
||||
return new WindChartSettings();
|
||||
}
|
||||
|
||||
@Override
|
||||
public WindChartSettings cloneSettings(WindChartSettings settings) {
|
||||
return new WindChartSettings(settings.isShowWindSpeedSeries(), settings.getWindSpeedSourcesToDisplay(),
|
||||
settings.isShowWindDirectionsSeries(), settings.getWindDirectionSourcesToDisplay(),
|
||||
settings.getResolutionInMilliseconds());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return stringMessages.wind();
|
||||
|
||||
-5
@@ -23,11 +23,6 @@ public class RaceMapLifecycle implements ComponentLifecycle<RaceMapSettings, Rac
|
||||
return new RaceMapSettings();
|
||||
}
|
||||
|
||||
@Override
|
||||
public RaceMapSettings cloneSettings(RaceMapSettings settings) {
|
||||
return new RaceMapSettings(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return stringMessages.map();
|
||||
|
||||
-7
@@ -17,13 +17,6 @@ public abstract class AbstractLeaderboardPerspectiveLifecycle extends AbstractPe
|
||||
return new LeaderboardPerspectiveOwnSettings();
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardPerspectiveOwnSettings clonePerspectiveOwnSettings(LeaderboardPerspectiveOwnSettings settings) {
|
||||
return new LeaderboardPerspectiveOwnSettings(settings.isShowRaceDetails(), settings.isHideToolbar(),
|
||||
settings.isAutoExpandLastRaceColumn(), settings.isShowCharts(), settings.isShowOverallLeaderboard(),
|
||||
settings.isShowSeriesLeaderboards(), settings.getZoomTo());
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<LeaderboardPerspectiveOwnSettings> getPerspectiveOwnSettingsDialogComponent(
|
||||
LeaderboardPerspectiveOwnSettings settings) {
|
||||
|
||||
-14
@@ -35,20 +35,6 @@ public class LeaderboardPanelLifecycle
|
||||
.createNewSettingsWithCustomDefaults(new LeaderboardSettings(namesOfRaceColumnsToShow, 1000L));
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettings cloneSettings(LeaderboardSettings settings) {
|
||||
LeaderboardSettings clonedSettings = new LeaderboardSettings(settings.getManeuverDetailsToShow(),
|
||||
settings.getLegDetailsToShow(), settings.getRaceDetailsToShow(), settings.getOverallDetailsToShow(),
|
||||
settings.getNamesOfRaceColumnsToShow(), settings.getNamesOfRacesToShow(),
|
||||
settings.getNumberOfLastRacesToShow(), settings.isAutoExpandPreSelectedRace(),
|
||||
settings.getDelayBetweenAutoAdvancesInMilliseconds(), settings.getNameOfRaceToSort(),
|
||||
settings.isSortAscending(), settings.isUpdateUponPlayStateChange(),
|
||||
settings.getActiveRaceColumnSelectionStrategy(), settings.isShowAddedScores(),
|
||||
settings.isShowOverallColumnWithNumberOfRacesCompletedPerCompetitor(),
|
||||
settings.isShowCompetitorSailIdColumn(), settings.isShowCompetitorFullNameColumn());
|
||||
return LeaderboardSettingsFactory.getInstance().keepDefaults(settings, clonedSettings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return stringMessages.leaderboard();
|
||||
|
||||
+1
@@ -17,4 +17,5 @@ public class LeaderboardPerspectiveLifecycle extends AbstractLeaderboardPerspect
|
||||
public boolean hasSettings() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
-5
@@ -93,11 +93,6 @@ public class RaceBoardPerspectiveLifecycle extends AbstractPerspectiveLifecycle<
|
||||
return "RaceBoard";
|
||||
}
|
||||
|
||||
@Override
|
||||
public RaceBoardPerspectiveSettings clonePerspectiveOwnSettings(RaceBoardPerspectiveSettings settings) {
|
||||
return new RaceBoardPerspectiveSettings(settings.getActiveCompetitorsFilterSetName(), settings.isShowLeaderboard(), settings.isShowWindChart(), settings.isShowCompetitorsChart(), settings.isCanReplayDuringLiveRaces(), settings.getInitialDurationAfterRaceStartInReplay());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected RaceBoardPerspectiveSettings extractOwnGlobalSettings(RaceBoardPerspectiveSettings settings) {
|
||||
return createPerspectiveOwnDefaultSettings();
|
||||
|
||||
-2
@@ -16,8 +16,6 @@ public interface ComponentLifecycle<S extends Settings, SDC extends SettingsDial
|
||||
SDC getSettingsDialogComponent(S settings);
|
||||
|
||||
S createDefaultSettings();
|
||||
|
||||
S cloneSettings(S settings);
|
||||
|
||||
/**
|
||||
* @return the display name of the component
|
||||
|
||||
+2
-2
@@ -116,7 +116,7 @@ public class AbstractComponentContextWithSettingsStorage<L extends ComponentLife
|
||||
}
|
||||
SettingsReceiverCallback<S> callback;
|
||||
while ((callback = settingsReceiverCallbacks.poll()) != null) {
|
||||
callback.receiveSettings(rootLifecycle.cloneSettings(result));
|
||||
callback.receiveSettings(result);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -163,7 +163,7 @@ public class AbstractComponentContextWithSettingsStorage<L extends ComponentLife
|
||||
if (currentDefaultSettings == null) {
|
||||
throw new IllegalStateException("Settings have not been initialized yet.");
|
||||
}
|
||||
return rootLifecycle.cloneSettings(currentDefaultSettings);
|
||||
return currentDefaultSettings;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
-19
@@ -44,19 +44,6 @@ public abstract class AbstractPerspectiveLifecycle<PS extends Settings> implemen
|
||||
return new PerspectiveCompositeSettings<>(perspectiveOwnSettings, createDefaultComponentIdsAndSettings());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PerspectiveCompositeSettings<PS> cloneSettings(PerspectiveCompositeSettings<PS> settings) {
|
||||
return new PerspectiveCompositeSettings<>(this.clonePerspectiveOwnSettings(settings.getPerspectiveOwnSettings()), cloneComponentIdsAndSettings(settings));
|
||||
}
|
||||
|
||||
public Map<String, Settings> cloneComponentIdsAndSettings(PerspectiveCompositeSettings<PS> settings) {
|
||||
Map<String, Settings> componentIdsAndSettings = new HashMap<>();
|
||||
for (ComponentLifecycle<?,?> componentLifecycle : componentLifecycles) {
|
||||
componentIdsAndSettings.put(componentLifecycle.getComponentId(), cloneChildComponentSettings(componentLifecycle, settings));
|
||||
}
|
||||
return componentIdsAndSettings;
|
||||
}
|
||||
|
||||
public Map<String, Settings> createDefaultComponentIdsAndSettings() {
|
||||
Map<String, Settings> componentIdsAndSettings = new HashMap<>();
|
||||
for (ComponentLifecycle<?,?> componentLifecycle : componentLifecycles) {
|
||||
@@ -80,12 +67,6 @@ public abstract class AbstractPerspectiveLifecycle<PS extends Settings> implemen
|
||||
throw new IllegalStateException("No componentlivecycle for id " + id + " found");
|
||||
}
|
||||
|
||||
private static<S extends Settings> S cloneChildComponentSettings(ComponentLifecycle<S, ?> childComponentLifecycle, PerspectiveCompositeSettings<?> settings) {
|
||||
@SuppressWarnings("unchecked")
|
||||
S childSettings = (S) settings.findSettingsByComponentId(childComponentLifecycle.getComponentId());
|
||||
return childComponentLifecycle.cloneSettings(childSettings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final PerspectiveCompositeSettings<PS> extractContextSettings(PerspectiveCompositeSettings<PS> settings) {
|
||||
HashMap<String, Settings> settingsPerComponent = new HashMap<>();
|
||||
|
||||
-4
@@ -19,12 +19,8 @@ public interface PerspectiveLifecycle<PS extends Settings> extends
|
||||
|
||||
PS createPerspectiveOwnDefaultSettings();
|
||||
|
||||
PS clonePerspectiveOwnSettings(PS settings);
|
||||
|
||||
SettingsDialogComponent<PS> getPerspectiveOwnSettingsDialogComponent(PS settings);
|
||||
|
||||
Map<String, Settings> cloneComponentIdsAndSettings(PerspectiveCompositeSettings<PS> settings);
|
||||
|
||||
Map<String, Settings> createDefaultComponentIdsAndSettings();
|
||||
|
||||
<SS extends Settings> ComponentLifecycle<SS, ?> getLiveCycleForId(String id);
|
||||
|
||||
Reference in new issue
Block a user