public static BusinessCalendar parseBusinessCalendarFromXmlString(String xmlString) {
return (BusinessCalendar) getInstance().parseXmlString(xmlString);
}
public Object parseDocumentElement(Element element, Parse parse) {
BusinessCalendar businessCalendar = new BusinessCalendar();
TimeZone timeZone = null;
if (element.hasAttribute("timezone")) {
timeZone = TimeZone.getTimeZone(element.getAttribute("timezone"));
} else {
timeZone = TimeZone.getDefault();
}
businessCalendar.setTimeZone(timeZone);
String hourFormatText = "HH:mm";
if (element.hasAttribute("hour-format")) {
hourFormatText = element.getAttribute("hour-format");
}
DateFormat hourFormat = new SimpleDateFormat(hourFormatText);
Day[] days = new Day[8];
Element daysElement = XmlUtil.element(element, "days");
if (daysElement!=null) {
days[Calendar.SUNDAY] = parseDay(daysElement, "sunday", hourFormat, businessCalendar, parse);
days[Calendar.MONDAY] = parseDay(daysElement, "monday", hourFormat, businessCalendar, parse);
days[Calendar.TUESDAY] = parseDay(daysElement, "tuesday", hourFormat, businessCalendar, parse);
days[Calendar.WEDNESDAY] = parseDay(daysElement, "wednesday", hourFormat, businessCalendar, parse);
days[Calendar.THURSDAY] = parseDay(daysElement, "thursday", hourFormat, businessCalendar, parse);
days[Calendar.FRIDAY] = parseDay(daysElement, "friday", hourFormat, businessCalendar, parse);
days[Calendar.SATURDAY] = parseDay(daysElement, "saturday", hourFormat, businessCalendar, parse);
}
businessCalendar.setDays(days);
String dayFormatText = "dd/MM/yyyy";
if (element.hasAttribute("day-format")) {
dayFormatText = element.getAttribute("day-format");
}
DateFormat dayFormat = new SimpleDateFormat(dayFormatText);
Holiday[] holidays = null;
List<Element> holidayElements = XmlUtil.elements(element, "holiday");
if (holidayElements!=null) {
holidays = new Holiday[holidayElements.size()];
for (int i=0; i<holidayElements.size(); i++) {
holidays[i] = parseHoliday(holidayElements.get(i), dayFormat, businessCalendar, parse);
}
}
businessCalendar.setHolidays(holidays);
return businessCalendar;
}