final DefaultCalendar cal = new DefaultCalendar();
calendar = cal;
final DateTime expire = new DateTime(expireStr);
cal.add(new DefaultEvent(Event.Type.LAST_TRADE_DATE, expire));
/* Delivery */
final int delMonth = month(xmlStringDecode(attr, SYMBOL_DDF_EXPIRE_MONTH, XML_PASS));
if (delMonth > 0) {
DateTime delivery = new DateTime(expire);
if (delMonth < expire.getMonthOfYear()) {
// Year rollover, advance a year before setting month
delivery = delivery.plusYears(1);
}
delivery = delivery.withMonthOfYear(delMonth);
cal.add(new DefaultEvent(Event.Type.LAST_DELIVERY_DATE, delivery));
}
}