added custom field serializer for PersonDTO

Change-Id: Ie9751a6f862193ef055b06c098ce5d978fcdcf37
This commit is contained in:
Axel Uhl committed 2016-12-16 00:41:18 +01:00
1 parent 1381e19a26
commit 8d11a87fd4
6 files changed
+67 -10

No files matched your search

@@ -1,9 +1,13 @@
package com.sap.sailing.domain.common;
import java.util.ArrayList;
import java.util.List;
import com.sap.sailing.domain.common.dto.PersonDTO;
import com.sap.sse.common.CountryCode;
import com.sap.sse.common.Duration;
import com.sap.sse.common.Named;
import com.sap.sse.common.Util;
import com.sap.sse.common.impl.NamedImpl;
@@ -20,7 +24,7 @@ public class CompetitorDescriptor extends NamedImpl implements Named {
private final String sailNumber;
private final String name;
private final CountryCode countryCode;
private final Iterable<PersonDTO> persons;
private final List<PersonDTO> persons;
private final Double timeOnTimeFactor;
private final Duration timeOnDistanceAllowancePerNauticalMile;
@@ -38,7 +42,8 @@ public class CompetitorDescriptor extends NamedImpl implements Named {
this.name = name;
this.teamName = teamName;
this.countryCode = countryCode;
this.persons = persons;
this.persons = new ArrayList<>();
Util.addAll(persons, this.persons);
this.timeOnTimeFactor = timeOnTimeFactor;
this.timeOnDistanceAllowancePerNauticalMile = timeOnDistanceAllowancePerNauticalMile;
}
@@ -0,0 +1,54 @@
package com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.dto;
import java.util.Date;
import com.google.gwt.user.client.rpc.CustomFieldSerializer;
import com.google.gwt.user.client.rpc.SerializationException;
import com.google.gwt.user.client.rpc.SerializationStreamReader;
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
import com.sap.sailing.domain.common.dto.PersonDTO;
public class PersonDTO_CustomFieldSerializer extends CustomFieldSerializer<PersonDTO> {
@Override
public void serializeInstance(SerializationStreamWriter streamWriter, PersonDTO instance)
throws SerializationException {
serialize(streamWriter, instance);
}
public static void serialize(SerializationStreamWriter streamWriter, PersonDTO instance)
throws SerializationException {
streamWriter.writeObject(instance.getName());
streamWriter.writeObject(instance.getDateOfBirth());
streamWriter.writeObject(instance.getDescription());
streamWriter.writeObject(instance.getNationalityThreeLetterIOCAcronym());
}
@Override
public boolean hasCustomInstantiateInstance() {
return true;
}
@Override
public PersonDTO instantiateInstance(SerializationStreamReader streamReader)
throws SerializationException {
return instantiate(streamReader);
}
public static PersonDTO instantiate(SerializationStreamReader streamReader)
throws SerializationException {
return new PersonDTO(streamReader.readString(), (Date) streamReader.readObject(),
streamReader.readString(), streamReader.readString());
}
@Override
public void deserializeInstance(SerializationStreamReader streamReader, PersonDTO instance)
throws SerializationException {
deserialize(streamReader, instance);
}
public static void deserialize(SerializationStreamReader streamReader, PersonDTO instance) {
// Done by instantiateInstance
}
}
@@ -445,7 +445,7 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS
CompetitorDTO addOrUpdateCompetitor(CompetitorDTO competitor) throws Exception;
List<CompetitorDTO> addCompetitors(Iterable<CompetitorDescriptor> competitorsForSaving, String searchTag) throws Exception;
List<CompetitorDTO> addCompetitors(List<CompetitorDescriptor> competitorsForSaving, String searchTag) throws Exception;
void allowCompetitorResetToDefaults(Iterable<CompetitorDTO> competitors);
@@ -596,12 +596,8 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan
void addOrUpdateCompetitor(CompetitorDTO competitor, AsyncCallback<CompetitorDTO> asyncCallback);
/**
* @param searchTag
* set as the {@code searchTag} property on all new competitors created and therefore returned in the
* {@link CompetitorDTO#getSearchTag()} properties
*/
void addCompetitors(Iterable<CompetitorDescriptor> competitorsForSaving, String searchTag, AsyncCallback<List<CompetitorDTO>> asyncCallback);
void addCompetitors(List<CompetitorDescriptor> competitorsForSaving, String searchTag,
AsyncCallback<List<CompetitorDTO>> asyncCallback);
void allowCompetitorResetToDefaults(Iterable<CompetitorDTO> competitors, AsyncCallback<Void> asyncCallback);
@@ -4828,7 +4828,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
}
@Override
public List<CompetitorDTO> addCompetitors(Iterable<CompetitorDescriptor> competitorDescriptors, String searchTag) throws URISyntaxException {
public List<CompetitorDTO> addCompetitors(List<CompetitorDescriptor> competitorDescriptors, String searchTag) throws URISyntaxException {
List<Competitor> competitorsForSaving = new ArrayList<>();
for (final CompetitorDescriptor competitorDescriptor : competitorDescriptors) {
Competitor competitor = convertCompetitorDescriptorToCompetitor(competitorDescriptor, searchTag);
@@ -12,6 +12,8 @@
<booleanAttribute key="default_auto_start" value="true"/>
<intAttribute key="default_start_level" value="4"/>
<booleanAttribute key="includeOptional" value="true"/>
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.pde.ui.launcher.PDESourceLookupDirector"/>
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;classpathContainer path=&amp;quot;com.google.gwt.eclipse.core.GWT_CONTAINER&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.classpathContainer&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>