bug5867/bug5866: made center/radius final fields in CourseArea

This commit is contained in:
Axel Uhl
2023-08-02 15:57:58 +02:00
parent 24a6b159ee
commit 8d3c5c81d1
49 changed files with 142 additions and 135 deletions
@@ -29,14 +29,10 @@ public interface CourseArea extends Positioned, NamedWithID, IsManagedByCache<Sh
*/
Position getCenterPosition();
void setCenterPosition(Position centerPosition);
/**
* If {@link #getCenterPosition()} delivers a non-{@code null} result, asking the radius of this course area, which
* is assumed to be of circulare shape, can make sense. If may, however, not be defined in which case {@code null}
* is returned.
*/
Distance getRadius();
void setRadius(Distance radius);
}
@@ -7,7 +7,9 @@ import java.util.UUID;
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogResolver;
import com.sap.sailing.domain.common.MarkType;
import com.sap.sailing.domain.common.PassingInstruction;
import com.sap.sailing.domain.common.Position;
import com.sap.sse.common.Color;
import com.sap.sse.common.Distance;
public interface SharedDomainFactory<RLR extends RaceLogResolver> extends CompetitorFactory, BoatFactory {
@@ -98,7 +100,7 @@ public interface SharedDomainFactory<RLR extends RaceLogResolver> extends Compet
* If a {@link CourseArea} with the given id already exists, it is returned. Otherwise a new {@link CourseArea}
* is created.
*/
CourseArea getOrCreateCourseArea(UUID id, String name);
CourseArea getOrCreateCourseArea(UUID id, String name, Position centerPosition, Distance radius);
/**
* Gets the {@link CourseArea} with passed id; if there is no such {@link CourseArea} <code>null</code> will be returned.
@@ -12,12 +12,14 @@ public class CourseAreaImpl extends NamedImpl implements CourseArea {
private static final long serialVersionUID = 5912385360170509150L;
private final UUID id;
private Position centerPosition; // no setter yet; TODO bug5867; clarify replication etc.
private Distance radius; // no setter yet; TODO bug5867; clarify replication etc.
private final Position centerPosition;
private final Distance radius;
public CourseAreaImpl(String name, UUID id) {
public CourseAreaImpl(String name, UUID id, Position centerPosition, Distance radius) {
super(name);
this.id = id;
this.centerPosition = centerPosition;
this.radius = radius;
}
@Override
@@ -30,23 +32,13 @@ public class CourseAreaImpl extends NamedImpl implements CourseArea {
return centerPosition;
}
@Override
public void setCenterPosition(Position centerPosition) {
this.centerPosition = centerPosition;
}
@Override
public Distance getRadius() {
return radius;
}
@Override
public void setRadius(Distance radius) {
this.radius = radius;
}
@Override
public CourseArea resolve(SharedDomainFactory<?> domainFactory) {
return domainFactory.getOrCreateCourseArea(id, getName());
return domainFactory.getOrCreateCourseArea(id, getName(), /* centerPosition */ null, /* radius */ null);
}
}
@@ -31,7 +31,9 @@ import com.sap.sailing.domain.base.Waypoint;
import com.sap.sailing.domain.common.BoatClassMasterdata;
import com.sap.sailing.domain.common.MarkType;
import com.sap.sailing.domain.common.PassingInstruction;
import com.sap.sailing.domain.common.Position;
import com.sap.sse.common.Color;
import com.sap.sse.common.Distance;
import com.sap.sse.common.Duration;
import com.sap.sse.common.WithID;
@@ -369,10 +371,10 @@ public class SharedDomainFactoryImpl<RLR extends RaceLogResolver> implements Sha
}
@Override
public CourseArea getOrCreateCourseArea(UUID courseAreaId, String name) {
public CourseArea getOrCreateCourseArea(UUID courseAreaId, String name, Position centerPosition, Distance radius) {
CourseArea result = getExistingCourseAreaById(courseAreaId);
if (result == null) {
result = new CourseAreaImpl(name, courseAreaId);
result = new CourseAreaImpl(name, courseAreaId, centerPosition, radius);
courseAreaCache.put(courseAreaId, result);
}
return result;