public boolean isRecurring() { if(getRecurrenceRules().size()>0) { return true; } DateList rdates = getRecurrenceDates(); return rdates!=null && rdates.size()>0; }
public boolean isRecurring() { if(getRecurrenceRules().size()>0) { return true; } DateList rdates = getRecurrenceDates(); return rdates!=null && rdates.size()>0; }
/** * Returns a single-element sublist containing the element of <code>list</code> at <code>offset</code>. Valid * offsets are from 1 to the size of the list. If an invalid offset is supplied, all elements from <code>list</code> * are added to <code>sublist</code>. * @param offset */ private List getOffsetDates(final DateList dates, final int offset) { if (offset == 0) { return dates; } final List offsetDates = getDateListInstance(dates); final int size = dates.size(); if (offset < 0 && offset >= -size) { offsetDates.add(dates.get(size + offset)); } else if (offset > 0 && offset <= size) { offsetDates.add(dates.get(offset - 1)); } return offsetDates; }
/** * Returns a single-element sublist containing the element of <code>list</code> at <code>offset</code>. Valid * offsets are from 1 to the size of the list. If an invalid offset is supplied, all elements from <code>list</code> * are added to <code>sublist</code>. * * @param dates * @param offset */ private List<Date> getOffsetDates(final DateList dates, final int offset) { if (offset == 0) { return dates; } final List<Date> offsetDates = Dates.getDateListInstance(dates); final int size = dates.size(); if (offset < 0 && offset >= -size) { offsetDates.add(dates.get(size + offset)); } else if (offset > 0 && offset <= size) { offsetDates.add(dates.get(offset - 1)); } return offsetDates; } }
/** * Returns a single-element sublist containing the element of <code>list</code> at <code>offset</code>. Valid * offsets are from 1 to the size of the list. If an invalid offset is supplied, all elements from <code>list</code> * are added to <code>sublist</code>. * * @param dates * @param offset */ private List<Date> getOffsetDates(final DateList dates, final int offset) { if (offset == 0) { return dates; } final List<Date> offsetDates = getDateListInstance(dates); final int size = dates.size(); if (offset < 0 && offset >= -size) { offsetDates.add(dates.get(size + offset)); } else if (offset > 0 && offset <= size) { offsetDates.add(dates.get(offset - 1)); } return offsetDates; }
/** * */ public void testSize() { assertEquals(expectedSize, dateList.size()); }
/** * Returns a single-element sublist containing the element of <code>list</code> at <code>offset</code>. Valid * offsets are from 1 to the size of the list. If an invalid offset is supplied, all elements from <code>list</code> * are added to <code>sublist</code>. * * @param dates * @param offset */ private List<Date> getOffsetDates(final DateList dates, final int offset) { if (offset == 0) { return dates; } final List<Date> offsetDates = Dates.getDateListInstance(dates); final int size = dates.size(); if (offset < 0 && offset >= -size) { offsetDates.add(dates.get(size + offset)); } else if (offset > 0 && offset <= size) { offsetDates.add(dates.get(offset - 1)); } return offsetDates; } }
/** * Returns a single-element sublist containing the element of <code>list</code> at <code>offset</code>. Valid * offsets are from 1 to the size of the list. If an invalid offset is supplied, all elements from <code>list</code> * are added to <code>sublist</code>. * * @param dates * @param offset */ private List<Date> getOffsetDates(final DateList dates, final int offset) { if (offset == 0) { return dates; } final List<Date> offsetDates = getDateListInstance(dates); final int size = dates.size(); if (offset < 0 && offset >= -size) { offsetDates.add(dates.get(size + offset)); } else if (offset > 0 && offset <= size) { offsetDates.add(dates.get(offset - 1)); } return offsetDates; }
/** * Applies BYSETPOS rules to <code>dates</code>. Valid positions are from 1 to the size of the date list. Invalid * positions are ignored. * @param dates */ private DateList applySetPosRules(final DateList dates) { // return if no SETPOS rules specified.. if (getSetPosList().isEmpty()) { return dates; } // sort the list before processing.. Collections.sort(dates); final DateList setPosDates = getDateListInstance(dates); final int size = dates.size(); for (final Iterator i = getSetPosList().iterator(); i.hasNext();) { final Integer setPos = (Integer) i.next(); final int pos = setPos.intValue(); if (pos > 0 && pos <= size) { setPosDates.add(dates.get(pos - 1)); } else if (pos < 0 && pos >= -size) { setPosDates.add(dates.get(size + pos)); } } return setPosDates; }
/** * */ public void testGetDatesCount() { java.util.TimeZone.setDefault(java.util.TimeZone.getTimeZone("Australia/Melbourne")); DateList dates = null; if (seed != null) { dates = recur.getDates(seed, periodStart, periodEnd, value); } else { dates = recur.getDates(periodStart, periodEnd, value); } assertEquals(expectedCount, dates.size()); // assertTrue("Date list exceeds expected count", dates.size() <= expectedCount); }
@Override public DateList transform(DateList dates) { // return if no SETPOS rules specified.. if (setPosList.isEmpty()) { return dates; } // sort the list before processing.. Collections.sort(dates); final DateList setPosDates = Dates.getDateListInstance(dates); final int size = dates.size(); for (final Integer setPos : setPosList) { final int pos = setPos; if (pos > 0 && pos <= size) { setPosDates.add(dates.get(pos - 1)); } else if (pos < 0 && pos >= -size) { setPosDates.add(dates.get(size + pos)); } } return setPosDates; } }
@Override public DateList transform(DateList dates) { // return if no SETPOS rules specified.. if (setPosList.isEmpty()) { return dates; } // sort the list before processing.. Collections.sort(dates); final DateList setPosDates = Dates.getDateListInstance(dates); final int size = dates.size(); for (final Integer setPos : setPosList) { final int pos = setPos; if (pos > 0 && pos <= size) { setPosDates.add(dates.get(pos - 1)); } else if (pos < 0 && pos >= -size) { setPosDates.add(dates.get(size + pos)); } } return setPosDates; } }
private void fixExDates(Component comp) throws Exception { PropertyList<ExDate> exDates = comp.getProperties(Property.EXDATE); List<Property> toAdd = new ArrayList<>(); List<Property> toRemove = new ArrayList<>(); for(ExDate exDate : exDates) { // ical likes a single exdate if(exDate.getDates().size()==1) { continue; } // remove exdate with multiple dates toRemove.add(exDate); // create single dates instead for(Date date : exDate.getDates()) { ExDate singleEx = (ExDate) exDate.copy(); singleEx.getDates().clear(); singleEx.getDates().add(date); toAdd.add(singleEx); } } // remove exdates with multiple dates comp.getProperties().removeAll(toRemove); // Add all single exdates comp.getProperties().addAll(toAdd); }
private void fixExDates(Component comp) throws Exception { PropertyList<ExDate> exDates = comp.getProperties(Property.EXDATE); List<Property> toAdd = new ArrayList<>(); List<Property> toRemove = new ArrayList<>(); for(ExDate exDate : exDates) { // ical likes a single exdate if(exDate.getDates().size()==1) { continue; } // remove exdate with multiple dates toRemove.add(exDate); // create single dates instead for(Date date : exDate.getDates()) { ExDate singleEx = (ExDate) exDate.copy(); singleEx.getDates().clear(); singleEx.getDates().add(date); toAdd.add(singleEx); } } // remove exdates with multiple dates comp.getProperties().removeAll(toRemove); // Add all single exdates comp.getProperties().addAll(toAdd); }
/** * */ public void testGetDatesOrdering() { DateList dl1 = recur.getDates(periodStart, periodEnd, value); Date prev = null; Date event = null; for(int i=0; i<dl1.size(); i++) { prev = event; event = (Date) dl1.get(i); log.debug("Occurence "+i+" at "+event); assertTrue(prev == null || !prev.after(event)); } }
/** * Applies BYSETPOS rules to <code>dates</code>. Valid positions are from 1 to the size of the date list. Invalid * positions are ignored. * * @param dates */ private DateList applySetPosRules(final DateList dates) { // return if no SETPOS rules specified.. if (getSetPosList().isEmpty()) { return dates; } // sort the list before processing.. Collections.sort(dates); final DateList setPosDates = getDateListInstance(dates); final int size = dates.size(); for (final Integer setPos : getSetPosList()) { final int pos = setPos; if (pos > 0 && pos <= size) { setPosDates.add(dates.get(pos - 1)); } else if (pos < 0 && pos >= -size) { setPosDates.add(dates.get(size + pos)); } } return setPosDates; }
/** * Applies BYSETPOS rules to <code>dates</code>. Valid positions are from 1 to the size of the date list. Invalid * positions are ignored. * * @param dates */ private DateList applySetPosRules(final DateList dates) { // return if no SETPOS rules specified.. if (getSetPosList().isEmpty()) { return dates; } // sort the list before processing.. Collections.sort(dates); final DateList setPosDates = getDateListInstance(dates); final int size = dates.size(); for (final Integer setPos : getSetPosList()) { final int pos = setPos; if (pos > 0 && pos <= size) { setPosDates.add(dates.get(pos - 1)); } else if (pos < 0 && pos >= -size) { setPosDates.add(dates.get(size + pos)); } } return setPosDates; }
@Test public void recurTests() { final TimeZone timeZone = DateHelper.EUROPE_BERLIN; final Recur recur = new Recur(); recur.setFrequency(ICal4JUtils.getCal4JFrequencyString(RecurrenceFrequency.WEEKLY)); recur.setUntil(getDate("2013-01-31", timeZone)); recur.setInterval(2); final DateList dateList = recur.getDates(getDate("2013-01-01", timeZone), getDate("2012-01-02", timeZone), getDate("2013-03-31", timeZone), Value.TIME); Assert.assertEquals(3, dateList.size()); final DateFormat df = new SimpleDateFormat(DateFormats.ISO_TIMESTAMP_MINUTES); df.setTimeZone(timeZone); Assert.assertEquals("2013-01-01 00:00", df.format(dateList.get(0))); Assert.assertEquals("2013-01-15 00:00", df.format(dateList.get(1))); Assert.assertEquals("2013-01-29 00:00", df.format(dateList.get(2))); }
private void getDates(java.util.Date startRange, java.util.Date endRange, java.util.Date eventStart, Recur recur) { net.fortuna.ical4j.model.Date start = new net.fortuna.ical4j.model.Date(startRange); net.fortuna.ical4j.model.Date end = new net.fortuna.ical4j.model.Date(endRange); net.fortuna.ical4j.model.Date seed = new net.fortuna.ical4j.model.Date(eventStart); DateList dates = recur.getDates(seed, start, end, Value.DATE); for (int i=0; i<dates.size(); i++) { log.info("date_" + i + " = " + dates.get(i).toString()); } }
DateList dl = r.getDates(seed, start, end, Value.DATE_TIME); int sz = dl.size(); counted += sz; if (sz != 0) {