ical4j - Найти событие на основе UID - PullRequest
0 голосов
/ 10 сентября 2018

Я использую ical4j для создания своего файла .ical и сохранения событий.Но как мне найти сохраненное VEvent в календаре?

У меня есть следующий код, но он не работает?Я получил свой календарь -> это работает, и я уже отлаживаю это

public VEvent findEvent(CalendarExtern calendarExtern, String hashId) throws IOException, ParserException {

    Calendar calendar = readCalenderFromFile(calendarExtern);

    for (Component component : calendar.getComponents(Component.VEVENT)) {
          if (hashId.equals(component.getProperty(Property.UID))) {
              VEvent event = (VEvent) component;
                return event;
          }
        } 

    return null;
}

Есть идеи?Большое спасибо

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Альтернативный подход с использованием ComponentGroup , чтобы найти последнюю версию события:

ComponentGroup<VEvent> group = new ComponentGroup(
         calendar.getComponents(Component.VEVENT),
         new Uid(hashId));

return group.getLatestRevision();
0 голосов
/ 11 сентября 2018

component.getProperty (Property.UID) возвращает свойство, поэтому вы действительно хотите:

if (hashId.equals(component.getProperty(Property.UID).getValue()))...

Конечно, в зависимости от вашего ввода вы можете проверить наличие компонентов без свойства UID перед выполнением getValue ().

...