package exercise.fill_blank; import java.io.*; import java.util.*; import exercise.*; public class FBExerciseModel extends ExerciseModel { protected int numBlanks; public FBExerciseModel(String id, String prompt, int numBlanks) { super(id, prompt); this.numBlanks = numBlanks; } public int getNumBlanks() { return numBlanks; } public static FBExerciseModel load(String path) throws IOException { String line; // Read the document into a buffer. Class cl = FBExerciseModel.class; InputStream is = cl.getResourceAsStream(path); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); Vector docBuffer = new Vector(); while ((line = br.readLine()) != null) { docBuffer.add(line); } br.close(); // Read the id from the buffer. String id = (String)docBuffer.get(2); // Read the prompt from the buffer. StringBuffer promptBuffer = new StringBuffer(); int index = 5; while ((line = (String)docBuffer.get(index++)) != "") { promptBuffer.append(line + "\n"); } String prompt = promptBuffer.toString(); // Read the number of blanks from the buffer. line = (String)docBuffer.get(index + 1); int numBlanks = Integer.parseInt(line); // Return an Exercise object. return new FBExerciseModel(id, prompt, numBlanks); } }