package org.visage.runtime.sequences; import java.util.*; import java.io.*; public class Script { public List<Class<?>> tests = new ArrayList<Class<?>>(); public List<String> commands = new ArrayList<String>(); public List<String> args = new ArrayList<String>(); private static Map<String, Class<?>> testMap = new HashMap<String, Class<?>>(); static { try { testMap.put("JE", Class.forName("org.visage.runtime.sequences.JPEGEncoder")); } catch (Exception ex) { // ignore } try { testMap.put("FM", Class.forName("org.visage.runtime.sequences.FractalMadness")); } catch (Exception ex) { // ignore } } public static Script readFromFile(String script) { Script result = new Script(); try { BufferedReader reader = new BufferedReader(new FileReader(script)); String line; String[] parts; Class testClass; while ((line = reader.readLine()) != null) { if (line.startsWith("#")) continue; // ignore comments if ((line = line.trim()).equals("")) continue; // ignore empty lines parts = line.split(" ", 2); testClass = testMap.get(parts[0]); if (testClass == null) { System.err.println("Error while reading test-script"); System.err.println("Command not found: " + line); reader.close(); return null; } result.tests.add(testClass); result.commands.add(parts[0]); result.args.add(parts[1]); } reader.close(); } catch (FileNotFoundException ex) { System.err.println("FileNotFound: " + script); return null; } catch (IOException ex) { System.err.println("IOException while reading test-script: " + ex.getLocalizedMessage()); return null; } return result; } }