/** * {@inheritDoc} */ public final String getValue() { return getRecur().toString(); }
/** * {@inheritDoc} */ public final String getValue() { return getRecur().toString(); }
/** * {@inheritDoc} */ public final String getValue() { return getRecur().toString(); }
/** * {@inheritDoc} */ public final String getValue() { return getRecur().toString(); }
/** * {@inheritDoc} */ public final String getValue() { return getRecur().toString(); }
/** * Will be renewed if {@link #setRecurrenceRule(String)} is called. * * @return the recurrenceRuleObject */ @Transient public Recur getRecurrenceObject() { final RRule rrule = getRecurrenceRuleObject(); return rrule != null ? rrule.getRecur() : null; }
private boolean isRRuleValid(RRule rrule, ValidationConfig config) { if (rrule == null) { return true; } if (rrule.getRecur() == null || rrule.getRecur().getFrequency() == null) { return false; } String recurFrequency = rrule.getRecur().getFrequency(); if (!config.getAllowedRecurrenceFrequencies().contains(recurFrequency)) { return false; } return true; }
private boolean isRRuleValid(RRule rrule, ValidationConfig config) { if (rrule == null) { return true; } if (rrule.getRecur() == null || rrule.getRecur().getFrequency() == null) { return false; } String recurFrequency = rrule.getRecur().getFrequency(); if (!config.getAllowedRecurrenceFrequencies().contains(recurFrequency)) { return false; } return true; }
public List<Recur> getRecurrenceRules() { List<Recur> toReturn = new ArrayList<>(); VEvent event = getEvent(); if(event != null) { PropertyList<RRule> rruleProperties = event.getProperties().getProperties(Property.RRULE); for (RRule rrule : rruleProperties) { toReturn.add(rrule.getRecur()); } } return toReturn; }
public List<Recur> getRecurrenceRules() { List<Recur> toReturn = new ArrayList<>(); VEvent event = getEvent(); if(event != null) { PropertyList<RRule> rruleProperties = event.getProperties().getProperties(Property.RRULE); for (RRule rrule : rruleProperties) { toReturn.add(rrule.getRecur()); } } return toReturn; }
/** * @param rRule * @return this for chaining. */ @Transient public TeamEventDO setRecurrence(final RRule rRule) { if (rRule == null || rRule.getRecur() == null) { this.recurrenceRuleObject = null; this.recurrenceRule = null; this.recurrenceUntil = null; return this; } final Recur recur = rRule.getRecur(); if (recur.getUntil() != null) { this.recurrenceUntil = recur.getUntil(); } else { this.recurrenceUntil = null; } this.recurrenceRuleObject = null; // do not use rRule param here! this.recurrenceRule = rRule.getValue(); return this; }
switch (rRule.getRecur().getFrequency()) { case "DAILY": { if (rRule.getRecur().getInterval() == -1) { msg = I18nHelper.getLocalizedMessage("plugins.teamcal.event.event.everyDay"); } else //ALLE ... msg = I18nHelper.getLocalizedMessage("plugins.teamcal.event.event.allDay", rRule.getRecur().getInterval()); if (rRule.getRecur().getInterval() == -1) { msg = I18nHelper.getLocalizedMessage("plugins.teamcal.event.event.everyWeek"); } else //ALLE ... msg = I18nHelper.getLocalizedMessage("plugins.teamcal.event.event.allWeeks", rRule.getRecur().getInterval()); if (rRule.getRecur().getInterval() == -1) { msg = I18nHelper.getLocalizedMessage("plugins.teamcal.event.event.everyMonth"); } else //ALLE ... msg = I18nHelper.getLocalizedMessage("plugins.teamcal.event.event.allMonth", rRule.getRecur().getInterval()); if (rRule.getRecur().getInterval() == -1) { msg = I18nHelper.getLocalizedMessage("plugins.teamcal.event.event.everyYear"); } else //ALLE ... msg = I18nHelper.getLocalizedMessage("plugins.teamcal.event.event.allYear", rRule.getRecur().getInterval()); if (rRule.getRecur().getUntil() != null) { SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.YYYY", ThreadLocalUserContext.getLocale());
untilICal4J.setUtc(true); RRule rRule = ICal4JUtils.calculateRRule(rruleStr); rRule.getRecur().setUntil(untilICal4J);
/** * ICU4J generates VTIMEZONE RRULEs with floating UNTIL, which results * in a bad VTIMEZONE because the UNTIL is converted to UTC, which will * be different depending on the default timezone of the server. So * to fix this, always add a day to UNTIL to make sure the RRULE * doesn't fall short. This should work for most timezones as timezones * don't usually change from day to day. Hopefully this is fixed in * an icu4j update. * @param vtz */ protected static void fixIcuVTimeZone(VTimeZone vtz) { for(Iterator<Observance> obIt = vtz.getObservances().iterator();obIt.hasNext();) { PropertyList<RRule> rruleList= obIt.next().getProperties(Property.RRULE); for(RRule rrule: rruleList) { Recur recur = rrule.getRecur(); if(recur.getUntil()!=null) { recur.getUntil().setTime(recur.getUntil().getTime() + ONE_DAY); } } } }
/** * ICU4J generates VTIMEZONE RRULEs with floating UNTIL, which results * in a bad VTIMEZONE because the UNTIL is converted to UTC, which will * be different depending on the default timezone of the server. So * to fix this, always add a day to UNTIL to make sure the RRULE * doesn't fall short. This should work for most timezones as timezones * don't usually change from day to day. Hopefully this is fixed in * an icu4j update. * @param vtz */ protected static void fixIcuVTimeZone(VTimeZone vtz) { for(Iterator<Observance> obIt = vtz.getObservances().iterator();obIt.hasNext();) { PropertyList<RRule> rruleList= obIt.next().getProperties(Property.RRULE); for(RRule rrule: rruleList) { Recur recur = rrule.getRecur(); if(recur.getUntil()!=null) { recur.getUntil().setTime(recur.getUntil().getTime() + ONE_DAY); } } } }
private boolean preCheckSendMail(final TeamEventDO event) { // check event ownership if (event.isOwnership() != null && event.isOwnership() == false) { return false; } // check date, send mails for future events only final Date now = new Date(); if (event.getStartDate().after(now)) { return true; } // No recurrence so event is in the past if (event.getRecurrenceRule() == null) { return false; } // Check rrule to see if an until date exists try { final RRule rRule = new RRule(event.getRecurrenceRule()); final net.fortuna.ical4j.model.Date until = rRule.getRecur().getUntil(); if (until == null) { return true; } final Date untilDate = new Date(until.getTime()); return untilDate.before(now) == false; } catch (ParseException e) { return false; } }
cal.add(Calendar.YEAR, 10); onsetLimit = Dates.getInstance(cal.getTime(), Value.DATE_TIME); final DateList recurrenceDates = rrule.getRecur().getDates(initialOnsetUTC, onsetLimit, Value.DATE_TIME); for (final Date recurDate : recurrenceDates) {
private void testRRule(final TimeZone timeZone) { TeamEventDO event = createEvent(timeZone, "2012-12-21 8:30", "2012-12-21 9:00", null, 1, null, null); assertNull(event.getRecurrenceObject()); event = createEvent(timeZone, "2012-12-21 8:30", "2012-12-21 9:00", RecurrenceFrequency.WEEKLY, 1, null, null); assertEquals("FREQ=WEEKLY;INTERVAL=1", event.getRecurrenceRule()); Collection<TeamEvent> events = getRecurrenceEvents("2012-12-01", "2013-01-31", timeZone, event); assertEvents(events, timeZone, "2012-12-21 08:30", "2012-12-28 08:30", "2013-01-04 08:30", "2013-01-11 08:30", "2013-01-18 08:30", "2013-01-25 08:30"); String untilInTimeZone = "2013-01-31"; if (timeZone.getRawOffset() < 0) { untilInTimeZone = "2013-02-01"; } event = createEvent(timeZone, "2012-12-21 18:30", "2012-12-22 9:00", RecurrenceFrequency.WEEKLY, 2, "2013-01-31", untilInTimeZone); RRule rRule = event.getRecurrenceRuleObject(); final String utcString = DateHelper.formatIsoDate(rRule.getRecur().getUntil(), DateHelper.UTC); assertEquals("WEEKLY", rRule.getRecur().getFrequency()); assertEquals(untilInTimeZone, utcString); assertEquals(2, rRule.getRecur().getInterval()); events = getRecurrenceEvents("2012-12-01", "2013-03-31", timeZone, event); assertEvents(events, timeZone, "2012-12-21 18:30", "2013-01-04 18:30", "2013-01-18 18:30"); assertTrue(events.iterator().next() instanceof TeamEventDO); }
r = ((RRule)prop).getRecur(); } else if (prop instanceof ExRule) { r = ((ExRule)prop).getRecur();
r = ((ExRule)val).getRecur(); } else { r = ((RRule)val).getRecur();