avoid using Serializable to refer to MarkDTO/CompetitorDTO

This commit is contained in:
Fredrik Teschke committed 2014-11-18 14:26:04 +01:00
1 parent 3543da6230
commit 9d8f7313b8
7 files changed
+30 -12

No files matched your search

@@ -3,8 +3,9 @@ package com.sap.sailing.domain.common.dto;
import java.io.Serializable;
import com.sap.sailing.domain.common.Color;
import com.sap.sailing.domain.common.racelog.tracking.MappableToDevice;
public interface CompetitorDTO extends Serializable {
public interface CompetitorDTO extends Serializable, MappableToDevice {
String getTwoLetterIsoCountryCode();
@@ -0,0 +1,13 @@
package com.sap.sailing.domain.common.racelog.tracking;
/**
* Marker interface that can be applied to DTOs that represent domain objects
* that can be mapped to a device for racelog-tracking (see {@link DeviceMapping}.
* By doing so, they can be referred without having to use {@link Serializable}
* as type - which has a considerable performance impact for GWT.
* @author Fredrik Teschke
*
*/
public interface MappableToDevice {
}
@@ -1,6 +1,5 @@
package com.sap.sailing.gwt.ui.adminconsole;
import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import java.util.List;
@@ -24,6 +23,7 @@ import com.google.gwt.view.client.SelectionModel;
import com.google.gwt.view.client.SingleSelectionModel;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.racelog.tracking.DeviceMappingConstants;
import com.sap.sailing.domain.common.racelog.tracking.MappableToDevice;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox;
@@ -43,7 +43,7 @@ public class AddDeviceMappingDialog extends DataEntryDialog<DeviceMappingDTO> {
private final MarkTableWrapper<SingleSelectionModel<MarkDTO>> markTable;
private final StringMessages stringMessages;
private Serializable selectedItem;
private MappableToDevice selectedItem;
public AddDeviceMappingDialog(SailingServiceAsync sailingService, final ErrorReporter errorReporter,
final StringMessages stringMessages, String leaderboardName, String raceColumnName, String fleetName,
@@ -1,6 +1,5 @@
package com.sap.sailing.gwt.ui.adminconsole;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -15,6 +14,7 @@ import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.gwt.view.client.SingleSelectionModel;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.racelog.tracking.MappableToDevice;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.DeviceIdentifierDTO;
@@ -31,7 +31,7 @@ public class ImportFixesAndAddMappingsDialog extends DataEntryDialog<Collection<
private final MarkTableWrapper<SingleSelectionModel<MarkDTO>> markTable;
private final StringMessages stringMessages;
private final Map<TrackFileImportDeviceIdentifierDTO, Serializable> mappings = new HashMap<>();
private final Map<TrackFileImportDeviceIdentifierDTO, MappableToDevice> mappings = new HashMap<>();
private TrackFileImportDeviceIdentifierDTO deviceToSelect;
private CompetitorDTO compToSelect;
@@ -130,7 +130,7 @@ public class ImportFixesAndAddMappingsDialog extends DataEntryDialog<Collection<
}
}
private void mappedToSelectionChanged(Serializable mappedTo) {
private void mappedToSelectionChanged(MappableToDevice mappedTo) {
if (! inInstableTransitionState) {
TrackFileImportDeviceIdentifierDTO device = deviceIdTable.getSelectionModel().getSelectedObject();
if (device != null) {
@@ -155,7 +155,7 @@ public class ImportFixesAndAddMappingsDialog extends DataEntryDialog<Collection<
markToSelect = null;
if (deviceId != null) {
Serializable mappedTo = mappings.get(deviceId);
MappableToDevice mappedTo = mappings.get(deviceId);
if (mappedTo instanceof CompetitorDTO) {
compToSelect = (CompetitorDTO) mappedTo;
} else if (mappedTo instanceof MarkDTO) {
@@ -192,7 +192,7 @@ public class ImportFixesAndAddMappingsDialog extends DataEntryDialog<Collection<
List<DeviceMappingDTO> result = new ArrayList<>();
for (TrackFileImportDeviceIdentifierDTO device : mappings.keySet()) {
DeviceIdentifierDTO deviceIdDto = new DeviceIdentifierDTO("FILE", device.uuidAsString);
Serializable mappedTo = mappings.get(device);
MappableToDevice mappedTo = mappings.get(device);
DeviceMappingDTO mapping = new DeviceMappingDTO(deviceIdDto, device.from, device.to,
mappedTo, null);
result.add(mapping);
@@ -169,6 +169,7 @@ import com.sap.sailing.domain.common.racelog.FlagPole;
import com.sap.sailing.domain.common.racelog.Flags;
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
import com.sap.sailing.domain.common.racelog.tracking.MappableToDevice;
import com.sap.sailing.domain.common.racelog.tracking.NoCorrespondingServiceRegisteredException;
import com.sap.sailing.domain.common.racelog.tracking.NotDenotedForRaceLogTrackingException;
import com.sap.sailing.domain.common.racelog.tracking.NotRevokableException;
@@ -4863,7 +4864,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
null : mapping.getTimeRange().from().asDate();
Date to = mapping.getTimeRange().to() == null || mapping.getTimeRange().to().asMillis() == Long.MAX_VALUE ?
null : mapping.getTimeRange().to().asDate();
Serializable item = null;
MappableToDevice item = null;
if (mapping.getMappedTo() instanceof Competitor) {
item = baseDomainFactory.convertToCompetitorDTO((Competitor) mapping.getMappedTo());
} else if (mapping.getMappedTo() instanceof Mark) {
@@ -4,17 +4,19 @@ import java.io.Serializable;
import java.util.Date;
import java.util.List;
import com.sap.sailing.domain.common.racelog.tracking.MappableToDevice;
public class DeviceMappingDTO implements Serializable {
private static final long serialVersionUID = -3272980620254526040L;
public DeviceIdentifierDTO deviceIdentifier;
public Date from;
public Date to;
public Serializable mappedTo;
public MappableToDevice mappedTo;
public List<Serializable> originalRaceLogEventIds;
protected DeviceMappingDTO() {}
public DeviceMappingDTO(DeviceIdentifierDTO deviceId, Date from, Date to, Serializable mappedTo,
public DeviceMappingDTO(DeviceIdentifierDTO deviceId, Date from, Date to, MappableToDevice mappedTo,
List<Serializable> originalRaceLogEventIds) {
this.deviceIdentifier = deviceId;
this.from = from;
@@ -4,8 +4,9 @@ import java.util.Collections;
import com.sap.sailing.domain.common.MarkType;
import com.sap.sailing.domain.common.dto.PositionDTO;
import com.sap.sailing.domain.common.racelog.tracking.MappableToDevice;
public class MarkDTO extends ControlPointDTO {
public class MarkDTO extends ControlPointDTO implements MappableToDevice {
private static final long serialVersionUID = -8031499997812618751L;
public PositionDTO position;
public String color;