Bug 5085: added storing for MarkTemplates

This commit is contained in:
Steffen Jacobs committed 2019-08-13 11:03:52 +02:00
1 parent 851270ece5
commit 7b5ac20e59
4 files changed
+39 -1

No files matched your search

@@ -21,6 +21,7 @@ import com.sap.sailing.domain.base.configuration.DeviceConfiguration;
import com.sap.sailing.domain.common.WindSource;
import com.sap.sailing.domain.common.dto.AnniversaryType;
import com.sap.sailing.domain.coursetemplate.MarkProperties;
import com.sap.sailing.domain.coursetemplate.MarkTemplate;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler;
@@ -220,4 +221,8 @@ public interface MongoObjectFactory {
/** Removes a {@link MarkProperties} object from the database. */
void removeMarkProperties(UUID markPropertiesId);
void storeMarkTemplate(MarkTemplate markTemplate);
void removeMarkTemplate(UUID markTemplateId);
}
@@ -3,6 +3,7 @@ package com.sap.sailing.domain.persistence.impl;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.common.tracking.GPSFix;
import com.sap.sailing.domain.coursetemplate.MarkProperties;
import com.sap.sailing.domain.coursetemplate.MarkTemplate;
import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters;
/**
@@ -124,5 +125,8 @@ public enum CollectionNames {
ANNIVERSARIES,
/** Contains the {@link MarkProperties}. */
MARK_PROPERTIES
MARK_PROPERTIES,
/** Contains the {@link MarkTemplate} objects. */
MARK_TEMPLATES
}
@@ -176,4 +176,7 @@ public enum FieldNames {
MARK_PROPERTIES_ID, MARK_PROPERTIES_FIXED_POSITION, MARK_PROPERTIES_TAGS, MARK_PROPERTIES_TRACKING_DEVICE_IDENTIFIER, MARK_PROPERTIES_USED_ROLE, MARK_PROPERTIES_USED_TEMPLATE,
// common mark properties
COMMON_MARK_PROPERTIES_COLOR, COMMON_MARK_PROPERTIES_NAME, COMMON_MARK_PROPERTIES_PATTERN, COMMON_MARK_PROPERTIES_SHAPE, COMMON_MARK_PROPERTIES_SHORT_NAME, COMMON_MARK_PROPERTIES_TYPE,
// mark template fields
MARK_TEMPLATE_ID;
}
@@ -105,6 +105,7 @@ import com.sap.sailing.domain.common.dto.AnniversaryType;
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
import com.sap.sailing.domain.coursetemplate.CommonMarkProperties;
import com.sap.sailing.domain.coursetemplate.MarkProperties;
import com.sap.sailing.domain.coursetemplate.MarkTemplate;
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
@@ -1874,4 +1875,29 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
e.printStackTrace();
}
}
@Override
public void storeMarkTemplate(MarkTemplate markTemplate) {
final MongoCollection<Document> collection = database.getCollection(CollectionNames.MARK_TEMPLATES.name());
final Document query = new Document(FieldNames.MARK_TEMPLATE_ID.name(), markTemplate.getId().toString());
final Document entry = storeMarkTemplateToDocument(markTemplate);
collection.withWriteConcern(WriteConcern.ACKNOWLEDGED).replaceOne(query, entry,
new UpdateOptions().upsert(true));
}
private Document storeMarkTemplateToDocument(MarkTemplate markTemplate) {
final Document result = new Document(FieldNames.MARK_TEMPLATE_ID.name(), markTemplate.getId().toString());
storeCommonMarkProperties(markTemplate, result);
return result;
}
@Override
public void removeMarkTemplate(UUID markTemplateId) {
final MongoCollection<Document> configurationsCollections = database
.getCollection(CollectionNames.MARK_TEMPLATES.name());
final Document query = new Document(FieldNames.MARK_TEMPLATE_ID.name(), markTemplateId.toString());
configurationsCollections.deleteOne(query);
}
}