@Override public Property toVEvent(final TeamEventDO event) { DateTime lastModified = new DateTime(event.getDtStamp() != null ? event.getDtStamp() : event.getCreated()); lastModified.setUtc(true); return new LastModified(lastModified); }
@Override public Property toVEvent(final TeamEventDO event) { DateTime dtStampValue = new DateTime(event.getDtStamp()); dtStampValue.setUtc(true); return new DtStamp(dtStampValue); }
@Override protected void onChange(final TeamEventDO obj, final TeamEventDO dbObj) { // only increment sequence if PF has ownership! if (obj.isOwnership() != null && obj.isOwnership() == false) { return; } // compute diff if (obj.mustIncSequence(dbObj)) { if (obj.getSequence() == null) { obj.setSequence(0); } else { obj.setSequence(obj.getSequence() + 1); } if (obj.getDtStamp() == null || obj.getDtStamp().equals(dbObj.getDtStamp())) { obj.setDtStamp(new Timestamp(System.currentTimeMillis())); } } }
@Override protected void onSave(final TeamEventDO event) { // set ownership if empty if (event.isOwnership() == null) { event.setOwnership(true); } // set DTSTAMP if empty if (event.getDtStamp() == null) { event.setDtStamp(new Timestamp(event.getCreated().getTime())); } // create uid if empty if (StringUtils.isBlank(event.getUid())) { event.setUid(TeamCalConfig.get().createEventUid()); } }
eventInDB = eventService.findByUid(calendar.getId(), event.getUid(), false); eventHandle.setEventInDB(eventInDB); if (eventInDB != null && eventInDB.getDtStamp() != null && eventInDB.getDtStamp().after(event.getDtStamp())) { eventHandle.addWarning(EventHandleError.WARN_OUTDATED);
Assert.assertEquals(event.getDtStamp().getTime(), DateHelper.parseIsoTimestamp("2017-06-22 15:07:52.000", DateHelper.UTC).getTime());
Assert.assertEquals(eventExtracted.getLocation(), eventSrc.getLocation()); } else if (VEVENT_DTSTAMP.equals(field)) { Assert.assertEquals(eventExtracted.getDtStamp(), eventSrc.getDtStamp()); } else if (VEVENT_LAST_MODIFIED.equals(field)) { Assert.assertNull(eventExtracted.getLocation()); } else if (VEVENT_DTSTAMP.equals(field)) { Assert.assertNull(eventExtracted.getDtStamp()); } else if (VEVENT_LAST_MODIFIED.equals(field)) { Assert.assertNull(eventExtracted.getLastUpdate());
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-06-22 15:07:52.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2020-01-01 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2020-01-01 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime());
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-06-21 15:07:52.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2020-01-01 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2020-01-01 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime());
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:54:55.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:56:14.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:56:52.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-13 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-13 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime());
eventOldState.getRecurrenceUntil()); diff.sequence = computeFieldDiff(diff, TeamEventField.SEQUENCE, fieldFilter, eventNewState.getSequence(), eventOldState.getSequence()); diff.dtStamp = computeFieldDiff(diff, TeamEventField.DT_STAMP, fieldFilter, eventNewState.getDtStamp(), eventOldState.getDtStamp());
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:43:34.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:44:22.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:44:37.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:44:53.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-13 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-13 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime());
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-06-21 06:34:14.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2021-01-01 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2021-01-01 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-06-21 06:49:49.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2021-01-01 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2021-01-01 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime());
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:59:07.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-14 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-14 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:59:07.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-14 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-14 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:59:07.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-14 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-14 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 13:02:24.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-24 17:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-24 18:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime());
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:49:51.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 13:15:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 14:15:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:50:16.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 13:15:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 14:15:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:50:42.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 13:15:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-12 14:15:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:50:42.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-20 12:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-20 13:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime());
Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-04 15:13:03.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-03 14:45:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-03 15:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-04 15:13:44.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-06 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-06 16:15:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-05 05:28:46.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-06 16:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-06 16:15:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-05 05:28:46.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-04 14:45:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getStartDate().getTime()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-04 15:00:00.000", DateHelper.EUROPE_BERLIN).getTime(), event.getEndDate().getTime());
private void copyFields(final CalendarEventObject event, final TeamEventDO src) { event.setCalendarId(src.getCalendarId()); event.setRecurrenceRule(src.getRecurrenceRule()); event.setRecurrenceExDate(src.getRecurrenceExDate()); event.setRecurrenceUntil(src.getRecurrenceUntil()); DOConverter.copyFields(event, src); event.setLastUpdate(src.getDtStamp()); if (src.getReminderActionType() != null && src.getReminderDuration() != null && src.getReminderDurationUnit() != null) { event.setReminderType(src.getReminderActionType().toString()); event.setReminderDuration(src.getReminderDuration()); final ReminderDurationUnit unit = src.getReminderDurationUnit(); event.setReminderUnit(unit.toString()); final DateHolder date = new DateHolder(src.getStartDate()); if (unit == ReminderDurationUnit.MINUTES) { date.add(Calendar.MINUTE, -src.getReminderDuration()); event.setReminder(date.getDate()); } else if (unit == ReminderDurationUnit.HOURS) { date.add(Calendar.HOUR, -src.getReminderDuration()); event.setReminder(date.getDate()); } else if (unit == ReminderDurationUnit.DAYS) { date.add(Calendar.DAY_OF_YEAR, -src.getReminderDuration()); event.setReminder(date.getDate()); } else { log.warn("ReminderDurationUnit '" + src.getReminderDurationUnit() + "' not yet implemented."); } } }