*/
public class Program {
+ /**
+ * Lexicographical comparison of programs based on (time, title, channel).
+ *
+ */
public static class TimeSorter implements Comparator<Program> {
/* (non-Javadoc)
* @see java.util.Comparator#compare(T, T)
*/
public int compare(Program o1, Program o2) {
- return o1.getInterval().getBegin().compareTo(o2.getInterval().getBegin());
+ int value = o1.getInterval().getBegin().compareTo(o2.getInterval().getBegin());
+ if ( value != 0 ) {
+ return value;
+ }
+ value = o1.getName().compareTo(o2.getName());
+ if (value != 0 ) {
+ return value;
+ }
+ return o1.getChannel().compareTo(o2.getChannel());
}
}
* @return Status describing the result of recording.
*/
public RecordingResult record() {
+ LOG.info("Recording " + this);
+ if ( SystemProperties.isRecordDisabled() ) {
+ return RecordingResult.OK;
+ }
try {
Action record = _programInfo.execute().getAction(RECORD_ACTION);
if (record == null) {
+ LOG.info(" result: " + RecordingResult.OLDSHOW);
return RecordingResult.OLDSHOW;
}
Page result = record.execute();
- return RecordingResult.valueOf(result.getContent().getText());
+ RecordingResult recordingResult = RecordingResult.valueOf(result.getContent().getText());
+ LOG.info(" result: " + recordingResult);
+ return recordingResult;
} catch (PageException e) {
LOG.warn("Technical problem recording program: '" + this + "'", e);
+ LOG.info(" result: " + RecordingResult.ERROR);
return RecordingResult.ERROR;
}
}