/** * 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.debugging; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import abs.backend.java.observing.TaskView; public abstract class AbstractDebugger implements Debugger { protected int step; protected final Map<String, FileContent> fileContent = new HashMap<String, FileContent>(); @Override public synchronized void nextStep(TaskView taskView, String fileName, int line) { step++; } static class FileContent { File file; ArrayList<String> lines = new ArrayList<String>(); FileContent(File file) { this.file = file; try { BufferedReader reader = new BufferedReader(new FileReader(file)); while (reader.ready()) { String line = reader.readLine(); if (line == null) break; lines.add(line); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } String getLine(int i) { return lines.get(i - 1); } File getFile() { return file; } } }