Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.openremote.controller.protocol;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.util.Collection;
- import net.fortuna.ical4j.data.CalendarBuilder;
- import net.fortuna.ical4j.data.ParserException;
- import net.fortuna.ical4j.filter.Filter;
- import net.fortuna.ical4j.filter.PeriodRule;
- import net.fortuna.ical4j.filter.Rule;
- import net.fortuna.ical4j.model.Calendar;
- import net.fortuna.ical4j.model.Component;
- import net.fortuna.ical4j.model.DateTime;
- import net.fortuna.ical4j.model.Dur;
- import net.fortuna.ical4j.model.Period;
- import net.fortuna.ical4j.model.component.VEvent;
- /**
- * This is a sample class to launch a rule.
- */
- public class CalendarProvider {
- public static Calendar calendar;
- public static Object calendarLock = new Object();
- //private static CalendarWatcher watcher;
- public static void loadCalendar(String calendarPath) throws IOException, ParserException {
- synchronized(calendarLock) {
- FileInputStream fin = new FileInputStream(calendarPath);
- CalendarBuilder builder = new CalendarBuilder();
- calendar = builder.build(fin);
- }
- }
- public static float getCalendarTemperature(final String calendarPath) {
- try {
- if (calendar == null) {
- loadCalendar(calendarPath);
- }
- java.util.Calendar today = java.util.Calendar.getInstance();
- Period period = new Period(new DateTime(today.getTime()), new Dur(0, 0, 1, 0));
- Filter filter = new Filter(new Rule[] {new PeriodRule(period)}, Filter.MATCH_ALL);
- synchronized(calendarLock) {
- @SuppressWarnings("rawtypes")
- Collection eventsToday = filter.filter(calendar.getComponents(Component.VEVENT));
- for (Object o : eventsToday) {
- VEvent event = (VEvent) o;
- try {
- float value = Float.parseFloat(event.getDescription().getValue());
- return value;
- } catch (Exception e) { }
- }
- }
- } catch (Exception e) {
- System.out.println(e.toString());
- }
- return -1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement