Bug 5085: Let the new domain types implement

WithQualifiedObjectIdentifier
This commit is contained in:
Steffen Schaefer committed 2019-08-13 10:38:47 +02:00
1 parent 59efca6560
commit e788db59b5
3 files changed
+64 -3

No files matched your search

@@ -1,6 +1,13 @@
package com.sap.sailing.domain.coursetemplate;
import java.util.UUID;
import com.sap.sailing.domain.common.security.SecuredDomainType;
import com.sap.sse.common.NamedWithUUID;
import com.sap.sse.security.shared.HasPermissions;
import com.sap.sse.security.shared.QualifiedObjectIdentifier;
import com.sap.sse.security.shared.TypeRelativeObjectIdentifier;
import com.sap.sse.security.shared.WithQualifiedObjectIdentifier;
/**
* A {@link Course} can be created from this template. The template defines {@link MarkTemplate}s,
@@ -27,7 +34,7 @@ import com.sap.sse.common.NamedWithUUID;
* @author Axel Uhl (d043530)
*
*/
public interface CourseTemplate extends WithOptionalRepeatablePart, NamedWithUUID, HasTags {
public interface CourseTemplate extends WithOptionalRepeatablePart, NamedWithUUID, HasTags, WithQualifiedObjectIdentifier {
/**
* The templates for all the marks that shall be made available in the regatta when applying this template. All
* marks required to construct the waypoint sequence must be produced from this set of mark templates. There may be
@@ -55,4 +62,18 @@ public interface CourseTemplate extends WithOptionalRepeatablePart, NamedWithUUI
* limitation.
*/
Iterable<WaypointTemplate> getWaypoints(int numberOfLaps);
public static TypeRelativeObjectIdentifier getTypeRelativeObjectIdentifier(UUID courseTemplateUUID) {
return new TypeRelativeObjectIdentifier(courseTemplateUUID.toString());
}
@Override
default QualifiedObjectIdentifier getIdentifier() {
return getPermissionType().getQualifiedObjectIdentifier(getTypeRelativeObjectIdentifier(getId()));
}
@Override
default HasPermissions getPermissionType() {
return SecuredDomainType.COURSE_TEMPLATE;
}
}
@@ -1,14 +1,20 @@
package com.sap.sailing.domain.coursetemplate;
import java.util.Map;
import java.util.UUID;
import com.sap.sailing.domain.base.Mark;
import com.sap.sailing.domain.common.DeviceIdentifier;
import com.sap.sailing.domain.common.MarkType;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.security.SecuredDomainType;
import com.sap.sse.common.Color;
import com.sap.sse.common.NamedWithUUID;
import com.sap.sse.common.TimePoint;
import com.sap.sse.security.shared.HasPermissions;
import com.sap.sse.security.shared.QualifiedObjectIdentifier;
import com.sap.sse.security.shared.TypeRelativeObjectIdentifier;
import com.sap.sse.security.shared.WithQualifiedObjectIdentifier;
/**
* Stores properties that can be applied to a mark in the context of an event or a regatta, including the mark's own
@@ -35,7 +41,7 @@ import com.sap.sse.common.TimePoint;
* @author Axel Uhl (d043530)
*
*/
public interface MarkProperties extends CommonMarkPropertiesWithOptionalPositioning, NamedWithUUID, HasTags {
public interface MarkProperties extends CommonMarkPropertiesWithOptionalPositioning, NamedWithUUID, HasTags, WithQualifiedObjectIdentifier {
void setColor(Color color);
void setShape(String shape);
@@ -68,4 +74,18 @@ public interface MarkProperties extends CommonMarkPropertiesWithOptionalPosition
Map<MarkTemplate, TimePoint> getLastUsedTemplate();
Map<String, TimePoint> getLastUsedRole();
public static TypeRelativeObjectIdentifier getTypeRelativeObjectIdentifier(UUID markPropertiesUUID) {
return new TypeRelativeObjectIdentifier(markPropertiesUUID.toString());
}
@Override
default QualifiedObjectIdentifier getIdentifier() {
return getPermissionType().getQualifiedObjectIdentifier(getTypeRelativeObjectIdentifier(getId()));
}
@Override
default HasPermissions getPermissionType() {
return SecuredDomainType.MARK_PROPERTIES;
}
}
@@ -1,6 +1,13 @@
package com.sap.sailing.domain.coursetemplate;
import java.util.UUID;
import com.sap.sailing.domain.base.Mark;
import com.sap.sailing.domain.common.security.SecuredDomainType;
import com.sap.sse.security.shared.HasPermissions;
import com.sap.sse.security.shared.QualifiedObjectIdentifier;
import com.sap.sse.security.shared.TypeRelativeObjectIdentifier;
import com.sap.sse.security.shared.WithQualifiedObjectIdentifier;
/**
* A template for creating a {@link Mark}. It has a globally unique ID and can be used in zero or more
@@ -11,5 +18,18 @@ import com.sap.sailing.domain.base.Mark;
* @author Axel Uhl (d043530)
*
*/
public interface MarkTemplate extends ControlPointTemplate, CommonMarkProperties {
public interface MarkTemplate extends ControlPointTemplate, CommonMarkProperties, WithQualifiedObjectIdentifier {
public static TypeRelativeObjectIdentifier getTypeRelativeObjectIdentifier(UUID markTemplateUUID) {
return new TypeRelativeObjectIdentifier(markTemplateUUID.toString());
}
@Override
default QualifiedObjectIdentifier getIdentifier() {
return getPermissionType().getQualifiedObjectIdentifier(getTypeRelativeObjectIdentifier(getId()));
}
@Override
default HasPermissions getPermissionType() {
return SecuredDomainType.MARK_TEMPLATE;
}
}