iCal4j neznám, ale chápu-li správně o co se tady snažíš, tak bych to udělal následovně:
public class MyEvent implements Comparable<MyEvent> {
private VEvent event;
public MyEvent (VEvent event) {
this.event = event;
}
// muzes si i v pripade nutnost "zviditelnit" i ostani metody VEventu v MyEventu prostym delegovanim volani
public VEvent getVEvent() { return this.event; }
public int compareTo( MyEvent myEvent ) {
// implementace porovnavaci metody
// k 1. VEeventu se dostanes pres field event k 2. pres myEvent.getVEvent()
}
}
v tom cyklu pak bude:public static TreeSet<MyEvent> loadEvents(InputStreamReader input) throws IOException, ParserException{
TreeSet<MyEvent> events = new TreeSet<MyEvent>();
CalendarBuilder builder = new CalendarBuilder();
Calendar calendar = builder.build(input);
ComponentList cl = calendar.getComponents(Component.VEVENT);
VEvent event;
//String summary;
//Property property;
for(int i = 0 ; i < cl.size() ; i++){
event = (VEvent) cl.get(i);
//summary = event.getProperty(Property.SUMMARY).getValue();
//System.out.print(summary);
//property = event.getProperty(Property.RRULE);
//if(property != null){
//}
//System.out.println(event.toString());
events.add(new MyEvent(event));
}