if (startDateTime == null) {
logMessage("Start time missing in programme tag");
} else if (mChannelId == null) {
logMessage("Channel missing in programme tag");
} else {
Date startDate = extractDate(startDateTime);
int startTime = extractTime(startDateTime);
if (startDate != null && startTime > -1) {
startProgram(startDate, startTime);
addField(ProgramFieldType.START_TIME_TYPE, startTime);
String vps = attributes.getValue("vps-start");
if (vps != null) {
int time = extractTime(vps);
addField(ProgramFieldType.VPS_TYPE, time);
}
String endDateTime = attributes.getValue("stop");
if (endDateTime != null) {
int endTime = extractTime(endDateTime);
addField(ProgramFieldType.END_TIME_TYPE, endTime);
}
mIsValid = true;
}
}
} else if (qName.equals("previously-shown")) {
Date prevDate = extractDate(attributes.getValue("start"));
if (prevDate != null) {
addField(ProgramFieldType.REPETITION_OF_TYPE, prevDate.toString());
}
} else if (qName.equals("next-time-shown")) {
Date nextDate = extractDate(attributes.getValue("start"));
if (nextDate != null) {
addField(ProgramFieldType.REPETITION_ON_TYPE, nextDate.toString());
}
} else if ("episode-num".equals(qName)) {
mEpisodeType = attributes.getValue("system");
} else if ("actor".equals(qName)) {
mRole = attributes.getValue("role");