annotate FileList.java @ 52:76e99859bdb4 tip

Add class files for previous changes.
author Marcus Pearce <marcus.pearce@eecs.qmul.ac.uk>
date Wed, 25 Feb 2015 10:11:04 +0000
parents f0cd8f32e8c8
children
rev   line source
m@0 1 /*=============================================================================
m@0 2 * File: FileList.java
m@0 3 * Author: Marcus Pearce <m.pearce@gold.ac.uk>
m@0 4 * Created: <2007-11-30 10:30:38 marcusp>
marcus@20 5 * Time-stamp: <2012-03-01 09:35:00 marcusp>
m@0 6 *=============================================================================
m@0 7 */
m@0 8
m@0 9 import java.util.ArrayList;
m@0 10 import java.util.Iterator;
m@0 11
m@0 12 import java.io.*;
m@0 13
m@0 14 import java.util.Random;
m@0 15
m@0 16 public class FileList {
m@0 17
m@0 18 private ArrayList files;
m@0 19 private ArrayList probes;
m@0 20 private int numFiles;
m@0 21 private int currentFileIndex;
m@0 22
m@0 23 public int numFiles() { return numFiles; }
m@0 24 public void setFileIndex(int i) { currentFileIndex = i; }
m@0 25
m@0 26 public String currentFile() {
m@0 27 if (currentFileIndex < numFiles)
m@0 28 return (String)files.get(currentFileIndex);
m@0 29 else
m@0 30 return null;
m@0 31 }
m@0 32
m@0 33 public ArrayList currentProbes() {
m@0 34 if (currentFileIndex < numFiles)
m@0 35 return (ArrayList)probes.get(currentFileIndex);
m@0 36 else
m@0 37 return null;
m@0 38 }
m@0 39
m@0 40 public void incrementFileIndex() {
m@0 41 currentFileIndex = currentFileIndex + 1;
m@0 42 }
m@0 43
m@0 44 private void randomise() {
m@0 45 Random rgen = new Random();
m@0 46 for (int i = 0; i < numFiles; i++) {
m@0 47 int randomPosition = rgen.nextInt(numFiles);
m@0 48 // System.out.println("i = " + i + "; rpos = " + randomPosition +
m@0 49 // "; files = " + files.size() +
m@0 50 // "; probes = " + probes.size());
m@0 51
m@0 52 String tempFile = (String)files.get(i);
m@0 53 files.set(i, files.get(randomPosition));
m@0 54 files.set(randomPosition, tempFile);
m@0 55
m@0 56 ArrayList tempProbe = (ArrayList)probes.get(i);
m@0 57 probes.set(i, probes.get(randomPosition));
m@0 58 probes.set(randomPosition, tempProbe);
m@0 59 }
m@0 60 }
m@0 61
m@0 62 private void importFileList(String filename) {
m@0 63 try {
m@0 64 LineNumberReader lnr =
m@0 65 new LineNumberReader(new FileReader(new File(filename)));
m@0 66 lnr.setLineNumber(1);
m@0 67 StreamTokenizer stok = new StreamTokenizer(lnr);
m@0 68 stok.parseNumbers();
m@0 69 stok.wordChars('_','_');
m@0 70 stok.wordChars('0','9');
m@0 71 //stok.wordChars('/','/');
m@0 72 stok.eolIsSignificant(true);
m@0 73 stok.nextToken();
m@0 74 while (stok.ttype != StreamTokenizer.TT_EOF) {
m@0 75 int lineno = lnr.getLineNumber();
m@0 76 int i = 0;
m@0 77 ArrayList iprobes = new ArrayList();
m@0 78 while (stok.ttype != StreamTokenizer.TT_EOL) {
m@0 79 int j = 0;
m@0 80 if (stok.ttype == StreamTokenizer.TT_NUMBER) {
m@0 81 iprobes.add((int)stok.nval - 1); // zero indexing
m@0 82 } else if (stok.ttype == StreamTokenizer.TT_WORD) {
m@0 83 files.add(stok.sval);
m@0 84 }
m@0 85 stok.nextToken();
m@0 86 }
m@0 87 i++;
m@0 88 numFiles++;
m@0 89 probes.add(iprobes);
m@0 90 stok.nextToken();
m@0 91 }
m@0 92 } catch(Exception e) {
m@0 93 System.out.println("Exception: " + e);
m@0 94 }
m@0 95 }
m@0 96
m@0 97 public void print() {
m@0 98 Iterator fi = files.iterator();
m@0 99 Iterator pi = probes.iterator();
m@0 100 while (fi.hasNext()) {
m@0 101 System.out.print((String)fi.next() + ": ");
m@0 102 ArrayList ip = (ArrayList)pi.next();
marcus@20 103
marcus@20 104 for (int i = 0; i < ip.size(); i++) {
marcus@20 105 int ppos = ((Integer)ip.get(i)).intValue() + 1;
marcus@20 106 System.out.print(ppos + " ");
marcus@20 107 }
m@0 108 System.out.print("\n");
m@0 109 }
m@0 110 }
m@0 111
m@0 112 public FileList(String filename) {
m@0 113 files = new ArrayList();
m@0 114 probes = new ArrayList();
m@0 115 currentFileIndex = 0;
m@0 116 this.importFileList(filename);
m@0 117 this.randomise();
m@0 118 this.print();
m@0 119 }
m@0 120 }