Mercurial > hg > mep
view FileList.java @ 32:01926bcd6016
Add debug command line option
author | Jeremy Gow <jeremy.gow@gmail.com> |
---|---|
date | Tue, 13 Nov 2012 18:00:31 +0000 |
parents | f0cd8f32e8c8 |
children |
line wrap: on
line source
/*============================================================================= * File: FileList.java * Author: Marcus Pearce <m.pearce@gold.ac.uk> * Created: <2007-11-30 10:30:38 marcusp> * Time-stamp: <2012-03-01 09:35:00 marcusp> *============================================================================= */ import java.util.ArrayList; import java.util.Iterator; import java.io.*; import java.util.Random; public class FileList { private ArrayList files; private ArrayList probes; private int numFiles; private int currentFileIndex; public int numFiles() { return numFiles; } public void setFileIndex(int i) { currentFileIndex = i; } public String currentFile() { if (currentFileIndex < numFiles) return (String)files.get(currentFileIndex); else return null; } public ArrayList currentProbes() { if (currentFileIndex < numFiles) return (ArrayList)probes.get(currentFileIndex); else return null; } public void incrementFileIndex() { currentFileIndex = currentFileIndex + 1; } private void randomise() { Random rgen = new Random(); for (int i = 0; i < numFiles; i++) { int randomPosition = rgen.nextInt(numFiles); // System.out.println("i = " + i + "; rpos = " + randomPosition + // "; files = " + files.size() + // "; probes = " + probes.size()); String tempFile = (String)files.get(i); files.set(i, files.get(randomPosition)); files.set(randomPosition, tempFile); ArrayList tempProbe = (ArrayList)probes.get(i); probes.set(i, probes.get(randomPosition)); probes.set(randomPosition, tempProbe); } } private void importFileList(String filename) { try { LineNumberReader lnr = new LineNumberReader(new FileReader(new File(filename))); lnr.setLineNumber(1); StreamTokenizer stok = new StreamTokenizer(lnr); stok.parseNumbers(); stok.wordChars('_','_'); stok.wordChars('0','9'); //stok.wordChars('/','/'); stok.eolIsSignificant(true); stok.nextToken(); while (stok.ttype != StreamTokenizer.TT_EOF) { int lineno = lnr.getLineNumber(); int i = 0; ArrayList iprobes = new ArrayList(); while (stok.ttype != StreamTokenizer.TT_EOL) { int j = 0; if (stok.ttype == StreamTokenizer.TT_NUMBER) { iprobes.add((int)stok.nval - 1); // zero indexing } else if (stok.ttype == StreamTokenizer.TT_WORD) { files.add(stok.sval); } stok.nextToken(); } i++; numFiles++; probes.add(iprobes); stok.nextToken(); } } catch(Exception e) { System.out.println("Exception: " + e); } } public void print() { Iterator fi = files.iterator(); Iterator pi = probes.iterator(); while (fi.hasNext()) { System.out.print((String)fi.next() + ": "); ArrayList ip = (ArrayList)pi.next(); for (int i = 0; i < ip.size(); i++) { int ppos = ((Integer)ip.get(i)).intValue() + 1; System.out.print(ppos + " "); } System.out.print("\n"); } } public FileList(String filename) { files = new ArrayList(); probes = new ArrayList(); currentFileIndex = 0; this.importFileList(filename); this.randomise(); this.print(); } }