/** * This method returns a list of events * * @return */ public ArrayList<Event> getList() { String time = ""; String summary = ""; String description = ""; try { FileInputStream fin = new FileInputStream("composite.ics"); CalendarBuilder builder = new CalendarBuilder(); Calendar calendar = builder.build(fin); for (Component c : calendar.getComponents()) { for (Property property : c.getProperties()) { switch (property.getName()) { case "DTSTART": time = property.getValue(); break; case "SUMMARY": summary = property.getValue(); break; case "DESCRIPTION": description = property.getValue(); break; } } list.add(new AthleticsEvent(summary, description, time)); } } catch (Exception e) { e.printStackTrace(); } return list; }
/** * @param icprops * @param comp * @param pattern * @throws Throwable */ public static void processProperties( final PropertyList icprops, final BaseComponentType comp, final BaseComponentType pattern, final boolean wrapXprops) throws Throwable { if ((icprops == null) || icprops.isEmpty()) { return; } comp.setProperties(new ArrayOfProperties()); final List<JAXBElement<? extends BasePropertyType>> pl = comp.getProperties().getBasePropertyOrTzid(); for (final Object icprop : icprops) { final Property prop = (Property) icprop; final PropertyInfoIndex pii = PropertyInfoIndex.fromName(prop.getName()); if ((pii != null) && !emit(pattern, comp.getClass(), pii.getXmlClass())) { continue; } final JAXBElement<? extends BasePropertyType> xmlprop = doProperty(prop, pii, wrapXprops); if (xmlprop != null) { processParameters(prop.getParameters(), xmlprop.getValue()); pl.add(xmlprop); } } }
public ArrayList<TVEvent> getTVEventsToday(Collection<?> eventsToday) { ArrayList<TVEvent> tvEventsToday = new ArrayList<TVEvent>(); for (Iterator<?> i = eventsToday.iterator(); i.hasNext(); ) { Component component = (Component) i.next(); // System.out.println("Component [" + component.getName() + "]"); for (Iterator<?> j = component.getProperties().iterator(); j.hasNext(); ) { Property property = (Property) j.next(); // System.out.println("Property [" + property.getName() + ", " + // property.getValue() + "]"); if (property.getName().equals(Property.DESCRIPTION)) { // System.out.println(property.getValue()); String[] tvName = property.getValue().split("( - Season )|(, Episode )|( - )|(, )"); tvEventsToday.add( new TVEvent( tvName[TV.TV_SHOW], tvName[TV.EPISODE_TITLE], tvName[TV.SEASON_NR], tvName[TV.EPISODE_NR])); // System.out.println(tvName[0]+"\n"+tvName[1]+"\n"+tvName[2]+"\n"+tvName[3]); } } } return tvEventsToday; }
private static String paramVal(final Property p, final String paramName) { Parameter param = p.getParameter(paramName); if ((param == null) || (param.getValue() == null)) { return null; } return param.getValue(); }
private static boolean dateOnly(final Property p) { Value valParam = (Value) p.getParameter(Parameter.VALUE); if ((valParam == null) || (valParam.getValue() == null)) { return false; } return valParam.getValue().toUpperCase().equals(Value.DATE); }
private static String getTzid(final Property p) { TzId tzidParam = (TzId) p.getParameter(Parameter.TZID); if (tzidParam == null) { return null; } return tzidParam.getValue(); }
static JAXBElement<? extends BasePropertyType> doProperty( final Property prop, final PropertyInfoIndex pii, final boolean wrapXprops) throws Throwable { if (prop instanceof XProperty) { if (!wrapXprops) { return null; } final XBedeworkWrapperPropType wrapper = new XBedeworkWrapperPropType(); wrapper.setText(prop.getValue()); processParameters(prop.getParameters(), wrapper); final XBedeworkWrappedNameParamType wnp = new XBedeworkWrappedNameParamType(); wnp.setText(prop.getName()); if (wrapper.getParameters() == null) { wrapper.setParameters(new ArrayOfParameters()); } wrapper.getParameters().getBaseParameter().add(of.createXBedeworkWrappedName(wnp)); return of.createXBedeworkWrapper(wrapper); } switch (pii) { case ACTION: /* ------------------- Action: Alarm -------------------- */ ActionPropType a = new ActionPropType(); a.setText(prop.getValue()); return of.createAction(a); case ATTACH: /* ------------------- Attachments -------------------- */ // pl.add(setAttachment(att)); return null; case ATTENDEE: /* ------------------- Attendees -------------------- */ final AttendeePropType att = new AttendeePropType(); att.setCalAddress(prop.getValue()); return of.createAttendee(att); case BUSYTYPE: return null; case CATEGORIES: /* ------------------- Categories -------------------- */ // LANG - filter on language - group language in one cat list? CategoriesPropType c = new CategoriesPropType(); CategoryList cats = ((Categories) prop).getCategories(); Iterator pit = cats.iterator(); while (pit.hasNext()) { c.getText().add((String) pit.next()); } return of.createCategories(c); case CLASS: /* ------------------- Class -------------------- */ ClassPropType cl = new ClassPropType(); cl.setText(prop.getValue()); return of.createClass(cl); case COMMENT: /* ------------------- Comments -------------------- */ CommentPropType cm = new CommentPropType(); cm.setText(prop.getValue()); return of.createComment(cm); case COMPLETED: /* ------------------- Completed -------------------- */ CompletedPropType cmp = new CompletedPropType(); cmp.setUtcDateTime(XcalUtil.getXMlUTCCal(prop.getValue())); return of.createCompleted(cmp); case CONTACT: /* ------------------- Contact -------------------- */ // LANG ContactPropType ct = new ContactPropType(); ct.setText(prop.getValue()); return of.createContact(ct); case CREATED: /* ------------------- Created -------------------- */ CreatedPropType created = new CreatedPropType(); created.setUtcDateTime(XcalUtil.getXMlUTCCal(prop.getValue())); return of.createCreated(created); case DESCRIPTION: /* ------------------- Description -------------------- */ DescriptionPropType desc = new DescriptionPropType(); desc.setText(prop.getValue()); return of.createDescription(desc); case DTEND: /* ------------------- DtEnd -------------------- */ DtendPropType dtend = (DtendPropType) makeDateDatetime(new DtendPropType(), prop); return of.createDtend(dtend); case DTSTAMP: /* ------------------- DtStamp -------------------- */ DtstampPropType dtstamp = new DtstampPropType(); dtstamp.setUtcDateTime(XcalUtil.getXMlUTCCal(prop.getValue())); return of.createDtstamp(dtstamp); case DTSTART: /* ------------------- DtStart -------------------- */ DtstartPropType dtstart = (DtstartPropType) makeDateDatetime(new DtstartPropType(), prop); return of.createDtstart(dtstart); case DUE: /* ------------------- Due -------------------- */ DuePropType due = (DuePropType) makeDateDatetime(new DuePropType(), prop); return of.createDue(due); case DURATION: /* ------------------- Duration -------------------- */ DurationPropType dur = new DurationPropType(); dur.setDuration(prop.getValue()); return of.createDuration(dur); case EXDATE: /* ------------------- ExDate --below------------ */ return null; case EXRULE: /* ------------------- ExRule --below------------- */ ExrulePropType er = new ExrulePropType(); er.setRecur(doRecur(((RRule) prop).getRecur())); return of.createExrule(er); case FREEBUSY: /* ------------------- freebusy -------------------- */ FreeBusy icfb = (FreeBusy) prop; PeriodList fbps = icfb.getPeriods(); if (Util.isEmpty(fbps)) { return null; } FreebusyPropType fb = new FreebusyPropType(); String fbtype = paramVal(prop, Parameter.FBTYPE); if (fbtype != null) { ArrayOfParameters pars = getAop(fb); FbtypeParamType f = new FbtypeParamType(); f.setText(fbtype); JAXBElement<FbtypeParamType> param = of.createFbtype(f); pars.getBaseParameter().add(param); } List<PeriodType> pdl = fb.getPeriod(); for (Object o : fbps) { Period p = (Period) o; PeriodType np = new PeriodType(); np.setStart(XcalUtil.getXMlUTCCal(p.getStart().toString())); np.setEnd(XcalUtil.getXMlUTCCal(p.getEnd().toString())); pdl.add(np); } return of.createFreebusy(fb); case GEO: /* ------------------- Geo -------------------- */ Geo geo = (Geo) prop; GeoPropType g = new GeoPropType(); g.setLatitude(geo.getLatitude().floatValue()); g.setLatitude(geo.getLongitude().floatValue()); return of.createGeo(g); case LAST_MODIFIED: /* ------------------- LastModified -------------------- */ LastModifiedPropType lm = new LastModifiedPropType(); lm.setUtcDateTime(XcalUtil.getXMlUTCCal(prop.getValue())); return of.createLastModified(lm); case LOCATION: /* ------------------- Location -------------------- */ LocationPropType l = new LocationPropType(); l.setText(prop.getValue()); return of.createLocation(l); case METHOD: /* ------------------- Method -------------------- */ MethodPropType m = new MethodPropType(); m.setText(prop.getValue()); return of.createMethod(m); case ORGANIZER: /* ------------------- Organizer -------------------- */ OrganizerPropType org = new OrganizerPropType(); org.setCalAddress(prop.getValue()); return of.createOrganizer(org); case PERCENT_COMPLETE: /* ------------------- PercentComplete -------------------- */ PercentCompletePropType p = new PercentCompletePropType(); p.setInteger(BigInteger.valueOf(((PercentComplete) prop).getPercentage())); return of.createPercentComplete(p); case PRIORITY: /* ------------------- Priority -------------------- */ PriorityPropType pr = new PriorityPropType(); pr.setInteger(BigInteger.valueOf(((Priority) prop).getLevel())); return of.createPriority(pr); case PRODID: /* ------------------- Prodid -------------------- */ ProdidPropType prod = new ProdidPropType(); prod.setText(prop.getValue()); return of.createProdid(prod); case RDATE: /* ------------------- RDate ------------------- */ // XXX Todo return null; case RECURRENCE_ID: /* ------------------- RecurrenceID -------------------- */ RecurrenceIdPropType ri = new RecurrenceIdPropType(); String strval = prop.getValue(); if (dateOnly(prop)) { // RECUR - fix all day recurrences sometime if (strval.length() > 8) { // Try to fix up bad all day recurrence ids. - assume a local timezone strval = strval.substring(0, 8); } ri.setDate(XcalUtil.fromDtval(strval)); } else { XcalUtil.initDt(ri, strval, getTzid(prop)); } return of.createRecurrenceId(ri); case RELATED_TO: /* ------------------- RelatedTo -------------------- */ RelatedToPropType rt = new RelatedToPropType(); String relType = paramVal(prop, Parameter.RELTYPE); String value = paramVal(prop, Parameter.VALUE); if ((value == null) || "uid".equalsIgnoreCase(value)) { rt.setUid(prop.getValue()); } else if ("uri".equalsIgnoreCase(value)) { rt.setUri(prop.getValue()); } else { rt.setText(prop.getValue()); } if (relType != null) { ArrayOfParameters pars = getAop(rt); ReltypeParamType r = new ReltypeParamType(); r.setText(relType); JAXBElement<ReltypeParamType> param = of.createReltype(r); pars.getBaseParameter().add(param); } return of.createRelatedTo(rt); case REPEAT: /* ------------------- Repeat Alarm -------------------- */ Repeat rept = (Repeat) prop; RepeatPropType rep = new RepeatPropType(); rep.setInteger(BigInteger.valueOf(rept.getCount())); return of.createRepeat(rep); case REQUEST_STATUS: /* ------------------- RequestStatus -------------------- */ // XXX Later return null; case RESOURCES: /* ------------------- Resources -------------------- */ ResourcesPropType r = new ResourcesPropType(); List<String> rl = r.getText(); ResourceList rlist = ((Resources) prop).getResources(); Iterator rlit = rlist.iterator(); while (rlit.hasNext()) { rl.add((String) rlit.next()); } return of.createResources(r); case RRULE: /* ------------------- RRule ------------------- */ RrulePropType rrp = new RrulePropType(); rrp.setRecur(doRecur(((RRule) prop).getRecur())); return of.createRrule(rrp); case SEQUENCE: /* ------------------- Sequence -------------------- */ SequencePropType s = new SequencePropType(); s.setInteger(BigInteger.valueOf(((Sequence) prop).getSequenceNo())); return of.createSequence(s); case STATUS: /* ------------------- Status -------------------- */ StatusPropType st = new StatusPropType(); st.setText(prop.getValue()); return of.createStatus(st); case SUMMARY: /* ------------------- Summary -------------------- */ SummaryPropType sum = new SummaryPropType(); sum.setText(prop.getValue()); return of.createSummary(sum); case TRIGGER: /* ------------------- Trigger - alarm -------------------- */ TriggerPropType trig = new TriggerPropType(); String valType = paramVal(prop, Parameter.VALUE); if ((valType == null) || (valType.equalsIgnoreCase(Value.DURATION.getValue()))) { trig.setDuration(prop.getValue()); String rel = paramVal(prop, Parameter.RELATED); if (rel != null) { ArrayOfParameters pars = getAop(trig); RelatedParamType rpar = new RelatedParamType(); rpar.setText(IcalDefs.alarmTriggerRelatedEnd); JAXBElement<RelatedParamType> param = of.createRelated(rpar); pars.getBaseParameter().add(param); } } else if (valType.equalsIgnoreCase(Value.DATE_TIME.getValue())) { // t.setDateTime(val.getTrigger()); trig.setDateTime(XcalUtil.getXMlUTCCal(prop.getValue())); } return of.createTrigger(trig); case TRANSP: /* ------------------- Transp -------------------- */ TranspPropType t = new TranspPropType(); t.setText(prop.getValue()); return of.createTransp(t); case TZID: case TZNAME: case TZOFFSETFROM: case TZOFFSETTO: case TZURL: return null; case UID: /* ------------------- Uid -------------------- */ final UidPropType uid = new UidPropType(); uid.setText(prop.getValue()); return of.createUid(uid); case URL: /* ------------------- Url -------------------- */ final UrlPropType u = new UrlPropType(); u.setUri(prop.getValue()); return of.createUrl(u); case VERSION: /* ------------------- Version - vcal only -------------------- */ final VersionPropType vers = new VersionPropType(); vers.setText(prop.getValue()); return of.createVersion(vers); case XBEDEWORK_COST: /* ------------------- Cost -------------------- */ final XBedeworkCostPropType cst = new XBedeworkCostPropType(); cst.setText(prop.getValue()); return of.createXBedeworkCost(cst); case X_BEDEWORK_CATEGORIES: /* ------------------- Categories -------------------- */ final XBwCategoriesPropType xpcat = new XBwCategoriesPropType(); xpcat.getText().add(prop.getValue()); return of.createXBedeworkCategories(xpcat); case X_BEDEWORK_CONTACT: /* ------------------- Categories -------------------- */ final XBwContactPropType xpcon = new XBwContactPropType(); xpcon.setText(prop.getValue()); return of.createXBedeworkContact(xpcon); case X_BEDEWORK_LOCATION: /* ------------------- Categories -------------------- */ final XBwLocationPropType xploc = new XBwLocationPropType(); xploc.setText(prop.getValue()); return of.createXBedeworkLocation(xploc); default: if (prop instanceof XProperty) { /* ------------------------- x-property --------------------------- */ /* final PropertyInfoIndex xpii = PropertyInfoIndex.fromName(prop.getName()); if (xpii == null) { return null; } return null;*/ if (!wrapXprops) { return null; } final XBedeworkWrapperPropType wrapper = new XBedeworkWrapperPropType(); processParameters(prop.getParameters(), wrapper); return of.createXBedeworkWrapper(wrapper); } } // switch (pii) return null; }
private static DateDatetimePropertyType makeDateDatetime( final DateDatetimePropertyType p, final Property prop) throws Throwable { XcalUtil.initDt(p, prop.getValue(), getTzid(prop)); return p; }