/**
* Copyright (c) 2009-2011, The HATS Consortium. All rights reserved.
* This file is licensed under the terms of the Modified BSD License.
*/
package abs.backend.java.scheduling;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class HistoryItem {
public int cogId;
public int taskid;
public HistoryAction action;
HistoryItem(String s) {
String[] strings = s.trim().split(",");
cogId = Integer.parseInt(strings[0]);
String a = strings[1];
if (a.equals("S"))
action = HistoryAction.SCHEDULE;
else if (a.equals("E"))
action = HistoryAction.EXECUTE;
else if (a.equals("A"))
action = HistoryAction.ACTIVATE;
if (action != HistoryAction.SCHEDULE) {
taskid = Integer.parseInt(strings[2]);
}
}
public boolean matches(ScheduleAction a) {
if (cogId != a.getCOG().getID())
return false;
if ((a instanceof StepTask && action != HistoryAction.EXECUTE)
|| (a instanceof ScheduleTask && action != HistoryAction.SCHEDULE)
|| (a instanceof ActivateTask && action != HistoryAction.ACTIVATE))
return false;
if (action != HistoryAction.SCHEDULE) {
if (a.getTask() == null) {
System.err.println(a);
System.err.println(action);
System.err.println(a.getClass());
}
return a.getTask().getID() == taskid;
} else {
return true;
}
}
@Override
public String toString() {
return cogId + "," + action.toString() + "," + taskid;
}
public static List<HistoryItem> loadHistory(File f) throws IOException {
List<HistoryItem> history;
BufferedReader reader = new BufferedReader(new FileReader(f));
history = new ArrayList<HistoryItem>();
while (reader.ready()) {
String s = reader.readLine();
if (s == null)
break;
history.add(new HistoryItem(s));
}
return history;
}
}