Added startDate and endDate as new properties of the 'Event' domain class (including edit UI)

This commit is contained in:
fmittag committed 2014-02-24 16:04:33 +01:00
1 parent 56ba487259
commit b5bff27a10
36 files changed
+327 -161

No files matched your search

@@ -173,7 +173,12 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
}
private TimePoint loadTimePoint(DBObject object, FieldNames field) {
return new MillisecondsTimePoint(((Number) object.get(field.name())).longValue());
TimePoint result = null;
Number timePointAsNumber = (Number) object.get(field.name());
if(timePointAsNumber != null) {
result = new MillisecondsTimePoint(timePointAsNumber.longValue());
}
return result;
}
/**
@@ -836,10 +841,11 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
private Event loadEvent(DBObject eventDBObject) {
String name = (String) eventDBObject.get(FieldNames.EVENT_NAME.name());
UUID id = (UUID) eventDBObject.get(FieldNames.EVENT_ID.name());
String publicationUrl = (String) eventDBObject.get(FieldNames.EVENT_PUBLICATION_URL.name());
TimePoint startDate = loadTimePoint(eventDBObject, FieldNames.EVENT_START_DATE);
TimePoint endDate = loadTimePoint(eventDBObject, FieldNames.EVENT_END_DATE);
boolean isPublic = eventDBObject.get(FieldNames.EVENT_IS_PUBLIC.name()) != null ? (Boolean) eventDBObject.get(FieldNames.EVENT_IS_PUBLIC.name()) : false;
Venue venue = loadVenue((DBObject) eventDBObject.get(FieldNames.VENUE.name()));
Event result = new EventImpl(name, venue, publicationUrl, isPublic, id);
Event result = new EventImpl(name, startDate, endDate, venue, isPublic, id);
return result;
}
@@ -11,8 +11,9 @@ public enum FieldNames {
*/
EVENT_NAME,
EVENT_ID,
EVENT_PUBLICATION_URL,
EVENT_IS_PUBLIC,
EVENT_START_DATE,
EVENT_END_DATE,
REGATTA_NAME,
REGATTA_ID,
@@ -106,11 +106,15 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
}
private void storeTimePoint(TimePoint timePoint, DBObject result, FieldNames field) {
result.put(field.name(), timePoint.asMillis());
if(timePoint != null) {
result.put(field.name(), timePoint.asMillis());
}
}
private void storeTimed(Timed timed, DBObject result) {
storeTimePoint(timed.getTimePoint(), result, FieldNames.TIME_AS_MILLIS);
if(timed.getTimePoint() != null) {
storeTimePoint(timed.getTimePoint(), result, FieldNames.TIME_AS_MILLIS);
}
}
private void storeSpeedWithBearing(SpeedWithBearing speedWithBearing, DBObject result) {
@@ -422,7 +426,8 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
DBObject eventDBObject = new BasicDBObject();
eventDBObject.put(FieldNames.EVENT_NAME.name(), event.getName());
eventDBObject.put(FieldNames.EVENT_ID.name(), event.getId());
eventDBObject.put(FieldNames.EVENT_PUBLICATION_URL.name(), event.getPublicationUrl());
storeTimePoint(event.getStartDate(), eventDBObject, FieldNames.EVENT_START_DATE);
storeTimePoint(event.getEndDate(), eventDBObject, FieldNames.EVENT_END_DATE);
eventDBObject.put(FieldNames.EVENT_IS_PUBLIC.name(), event.isPublic());
DBObject venueDBObject = getVenueAsDBObject(event.getVenue());
eventDBObject.put(FieldNames.VENUE.name(), venueDBObject);