@Override public List<org.exoplatform.calendar.model.Calendar> findCalendars(CalendarQuery query) { List<org.exoplatform.calendar.model.Calendar> calendars = new LinkedList<org.exoplatform.calendar.model.Calendar>(); List<String> excludes = Collections.emptyList(); String[] excludesId = query.getExclusions(); if (excludesId != null) { excludes = Arrays.asList(excludesId); } try { Identity identity = query.getIdentity(); List<Calendar> cals = dataStorage.getUserCalendars(identity.getUserId(), true); if (cals != null && cals.size() > 0) { for (Calendar c : cals) { if (!excludes.contains(c.getId())) { calendars.add(c); } } } GroupCalendarData data = dataStorage.getSharedCalendars(identity.getUserId(), true); if (data != null && data.getCalendars().size() > 0) { for (Calendar c : data.getCalendars()) { if (!excludes.contains(c.getId())) { calendars.add(c); } } } List<GroupCalendarData> datas = dataStorage.getGroupCalendars( identity.getGroups().toArray(new String[0]), true, identity.getUserId()); if (datas != null && datas.size() > 0) { for (GroupCalendarData d : datas) { for (Calendar c : d.getCalendars()) { if (!excludes.contains(c.getId())) { calendars.add(c); } } } } for (org.exoplatform.calendar.model.Calendar cal : calendars) { cal.setDS(JCRStorage.JCR_STORAGE); } return calendars; } catch (Exception ex) { LOG.error(ex); } return null; }