Added RacePlaceOrder class

This commit is contained in:
Lennart Hensler
2012-01-11 18:17:38 +01:00
parent b9e134eb96
commit 42cbbe9a5b
3 changed files with 70 additions and 8 deletions
@@ -52,7 +52,9 @@ import com.sap.sailing.domain.tracking.Wind;
import com.sap.sailing.domain.tracking.WindStore;
import com.sap.sailing.domain.tracking.WindTrack;
import com.sap.sailing.geocoding.Placemark;
import com.sap.sailing.geocoding.RacePlaceOrder;
import com.sap.sailing.geocoding.ReverseGeocoder;
import com.sap.sailing.geocoding.impl.RacePlaceOrderImpl;
public abstract class TrackedRaceImpl implements TrackedRace, CourseListener {
private static final Logger logger = Logger.getLogger(TrackedRaceImpl.class.getName());
@@ -946,8 +948,8 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener {
}
}
public String getPlace() {
String place = "";
public RacePlaceOrder getPlace() {
RacePlaceOrder order = new RacePlaceOrderImpl(getRace().getName());
Placemark startBest = null;
Placemark finishBest = null;
@@ -998,14 +1000,12 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener {
e.printStackTrace();
}
if (startBest.equals(finishBest)) {
place = startBest.getCountryCode() + ", " + startBest.getName();
} else {
place = startBest.getCountryCode() + ", " + startBest.getName();
place = place + " -> " + finishBest.getCountryCode() + ", " + finishBest.getName();
order.addPlace(startBest);
if (!startBest.equals(finishBest)) {
order.addPlace(finishBest);
}
return place;
return order;
}
}
@@ -0,0 +1,11 @@
package com.sap.sailing.geocoding;
import java.util.List;
public interface RacePlaceOrder {
String getName();
List<Placemark> getPlaces();
void addPlace(Placemark place);
}
@@ -0,0 +1,51 @@
package com.sap.sailing.geocoding.impl;
import java.util.ArrayList;
import java.util.List;
import com.sap.sailing.geocoding.Placemark;
import com.sap.sailing.geocoding.RacePlaceOrder;
public class RacePlaceOrderImpl implements RacePlaceOrder {
private String raceName;
private List<Placemark> places;
public RacePlaceOrderImpl(String raceName) {
this.raceName = raceName;
this.places = new ArrayList<Placemark>();
}
@Override
public String getName() {
return raceName;
}
@Override
public List<Placemark> getPlaces() {
return places;
}
@Override
public void addPlace(Placemark place) {
places.add(place);
}
@Override
public String toString() {
StringBuilder b = new StringBuilder(raceName + "(");
int c = 0;
for (Placemark place : places) {
if (c < places.size() - 1) {
b.append(place.getCountryCode() + ", " + place.getName() + " -> ");
} else {
b.append(place.getCountryCode() + ", " + place.getName() + ")");
}
c++;
}
return b.toString();
}
}