Marked the side effect free values and dimensions of the domain model

This commit is contained in:
Lennart Hensler
2014-04-29 15:21:52 +02:00
parent 31b186c591
commit 1b26dfa865
19 changed files with 86 additions and 14 deletions
@@ -1,9 +1,11 @@
package com.sap.sailing.datamining.data;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sse.datamining.shared.annotations.SideEffectFreeValue;
public interface HasLeaderboardContext extends HasLeaderboardGroupContext {
@SideEffectFreeValue(messageKey="Leaderboard")
public Leaderboard getLeaderboard();
}
@@ -1,9 +1,11 @@
package com.sap.sailing.datamining.data;
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
import com.sap.sse.datamining.shared.annotations.SideEffectFreeValue;
public interface HasLeaderboardGroupContext {
@SideEffectFreeValue(messageKey="LeaderboardGroup")
public LeaderboardGroup getLeaderboardGroup();
}
@@ -2,11 +2,15 @@ package com.sap.sailing.datamining.data;
import com.sap.sailing.domain.common.LegType;
import com.sap.sailing.domain.tracking.TrackedLeg;
import com.sap.sse.datamining.shared.annotations.Dimension;
public interface HasTrackedLegContext extends HasTrackedRaceContext {
public TrackedLeg getTrackedLeg();
@Dimension(messageKey="LegType")
public LegType getLegType();
@Dimension(messageKey="LegNumber")
public int getLegNumber();
}
@@ -1,9 +1,11 @@
package com.sap.sailing.datamining.data;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sse.datamining.shared.annotations.SideEffectFreeValue;
public interface HasTrackedLegOfCompetitorContext extends HasTrackedLegContext {
@SideEffectFreeValue(messageKey="Competitor")
public Competitor getCompetitor();
}
@@ -1,14 +1,36 @@
package com.sap.sailing.datamining.data;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.CourseArea;
import com.sap.sailing.domain.base.Fleet;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.domain.tracking.TrackedRegatta;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.shared.annotations.SideEffectFreeValue;
public interface HasTrackedRaceContext extends HasLeaderboardContext {
public CourseArea getCourseArea();
public Fleet getFleet();
public TrackedRegatta getTrackedRegatta();
public TrackedRace getTrackedRace();
@SideEffectFreeValue(messageKey="Regatte")
public Regatta getRegatta();
@SideEffectFreeValue(messageKey="CourseArea")
public CourseArea getCourseArea();
@SideEffectFreeValue(messageKey="Fleet")
public Fleet getFleet();
@SideEffectFreeValue(messageKey="BoatClass")
public BoatClass getBoatClass();
@SideEffectFreeValue(messageKey="Race")
public RaceDefinition getRace();
@Dimension(messageKey="Year")
public Integer getYear();
}
@@ -68,7 +68,7 @@ public abstract class AbstractLeaderboardGroupDataRetrievalWorker<DataType>
for (Pair<TrackedLeg, HasTrackedLegContext> baseDataEntry : baseData) {
TrackedLeg trackedLeg = baseDataEntry.getA();
HasTrackedLegContext trackedLegContext = baseDataEntry.getB();
for (Competitor competitor : trackedLegContext.getTrackedRace().getRace().getCompetitors()) {
for (Competitor competitor : trackedLegContext.getRace().getCompetitors()) {
TrackedLegOfCompetitor trackedLegOfCompetitor = trackedLeg.getTrackedLeg(competitor);
HasTrackedLegOfCompetitorContext dataContext = new HasTrackedLegOfCompetitorContextImpl(trackedLegContext,
competitor);
@@ -4,12 +4,16 @@ import java.util.Calendar;
import com.sap.sailing.datamining.data.HasLeaderboardContext;
import com.sap.sailing.datamining.data.HasTrackedRaceContext;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.CourseArea;
import com.sap.sailing.domain.base.Fleet;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.domain.tracking.TrackedRegatta;
public class HasTrackedRaceContextImpl extends HasLeaderboardContextImpl implements HasTrackedRaceContext {
@@ -31,6 +35,20 @@ public class HasTrackedRaceContextImpl extends HasLeaderboardContextImpl impleme
this.fleet = fleet;
this.trackedRace = trackedRace;
}
@Override
public TrackedRegatta getTrackedRegatta() {
return getTrackedRace().getTrackedRegatta();
}
public TrackedRace getTrackedRace() {
return trackedRace;
}
@Override
public Regatta getRegatta() {
return getTrackedRegatta().getRegatta();
}
@Override
public CourseArea getCourseArea() {
@@ -41,10 +59,15 @@ public class HasTrackedRaceContextImpl extends HasLeaderboardContextImpl impleme
public Fleet getFleet() {
return fleet;
}
@Override
public BoatClass getBoatClass() {
return getRegatta().getBoatClass();
}
@Override
public TrackedRace getTrackedRace() {
return trackedRace;
public RaceDefinition getRace() {
return getTrackedRace().getRace();
}
@Override
@@ -44,12 +44,12 @@ public class GPSFixWithContextImpl extends GPSFixMovingImpl implements GPSFixWit
@Override
public String getRegattaName() {
return context.getTrackedRace().getTrackedRegatta().getRegatta().getName();
return context.getRegatta().getName();
}
@Override
public String getRaceName() {
return context.getTrackedRace().getRace().getName();
return context.getRace().getName();
}
@Override
@@ -69,7 +69,7 @@ public class GPSFixWithContextImpl extends GPSFixMovingImpl implements GPSFixWit
@Override
public String getBoatClassName() {
return context.getCompetitor().getBoat().getBoatClass().getName();
return context.getBoatClass().getName();
}
@Override
@@ -20,12 +20,12 @@ public class TrackedLegOfCompetitorWithContextImpl implements TrackedLegOfCompet
@Override
public String getRegattaName() {
return context.getTrackedRace().getTrackedRegatta().getRegatta().getName();
return context.getRegatta().getName();
}
@Override
public String getRaceName() {
return context.getTrackedRace().getRace().getName();
return context.getRace().getName();
}
@Override
@@ -16,3 +16,4 @@ Export-Package: com.sap.sailing.domain.common,
com.sap.sailing.domain.common.racelog,
com.sap.sailing.domain.common.racelog.utils,
com.sap.sailing.domain.common.trackfiles
Require-Bundle: com.sap.sse.datamining.shared
@@ -2,6 +2,9 @@ package com.sap.sailing.domain.common;
import java.io.Serializable;
import com.sap.sse.datamining.shared.annotations.Dimension;
public interface Named extends Serializable {
@Dimension(messageKey="Name")
String getName();
}
@@ -5,7 +5,8 @@ Bundle-SymbolicName: com.sap.sailing.domain.shared.android
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: com.sap.sailing.domain.common;bundle-version="1.0.0"
Require-Bundle: com.sap.sailing.domain.common;bundle-version="1.0.0",
com.sap.sse.datamining.shared;bundle-version="1.0.0"
Export-Package: com.sap.sailing.domain.base,
com.sap.sailing.domain.base.configuration,
com.sap.sailing.domain.base.configuration.impl,
@@ -1,9 +1,11 @@
package com.sap.sailing.domain.base;
import com.sap.sailing.domain.common.Named;
import com.sap.sse.datamining.shared.annotations.Dimension;
public interface Boat extends Named {
BoatClass getBoatClass();
@Dimension(messageKey="SailID")
String getSailID();
}
@@ -3,10 +3,13 @@ package com.sap.sailing.domain.base;
import com.sap.sailing.domain.common.Color;
import com.sap.sailing.domain.common.Named;
import com.sap.sailing.domain.common.WithID;
import com.sap.sse.datamining.shared.annotations.SideEffectFreeValue;
public interface Competitor extends Named, WithID, IsManagedBySharedDomainFactory {
@SideEffectFreeValue(messageKey="Team")
Team getTeam();
@SideEffectFreeValue(messageKey="Boat")
Boat getBoat();
Color getColor();
@@ -2,8 +2,10 @@ package com.sap.sailing.domain.base;
import com.sap.sailing.domain.common.CountryCode;
import com.sap.sailing.domain.common.Named;
import com.sap.sse.datamining.shared.annotations.Dimension;
public interface Nationality extends Named, WithImage, IsManagedBySharedDomainFactory {
@Dimension(messageKey="NationalityAcronym")
String getThreeLetterIOCAcronym();
CountryCode getCountryCode();
@@ -1,5 +1,8 @@
package com.sap.sailing.domain.base;
import com.sap.sse.datamining.shared.annotations.SideEffectFreeValue;
public interface WithNationality {
@SideEffectFreeValue(messageKey="Nationality")
Nationality getNationality();
}
@@ -42,7 +42,7 @@ public class CompetitorImpl implements DynamicCompetitor {
public Serializable getId() {
return id;
}
@Override
public DynamicTeam getTeam() {
return team;
@@ -29,4 +29,5 @@ Require-Bundle: com.googlecode.java-diff-utils;bundle-version="1.3.0",
com.sap.sailing.domain.shared.android;bundle-version="1.0.0",
com.sap.sailing.domain.common,
org.json.simple;bundle-version="1.1.0",
com.sap.sailing.geocoding
com.sap.sailing.geocoding,
com.sap.sse.datamining.shared;bundle-version="1.0.0"
@@ -7,6 +7,7 @@ import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.Sideline;
import com.sap.sailing.domain.base.impl.TrackedRaces;
import com.sap.sailing.domain.common.NoWindException;
import com.sap.sailing.domain.common.TimePoint;