diff FileList.java @ 0:4031cbb02f08

Initial import. Ignore-this: 87317e384f22bde48db996355191fa5f
author Marcus Pearce <m.pearce@gold.ac.uk>
date Tue, 18 May 2010 11:37:10 +0100
parents
children 85b03f084d63
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FileList.java	Tue May 18 11:37:10 2010 +0100
@@ -0,0 +1,118 @@
+/*=============================================================================
+ * File:       FileList.java
+ * Author:     Marcus Pearce <m.pearce@gold.ac.uk>
+ * Created:    <2007-11-30 10:30:38 marcusp>
+ * Time-stamp: <2010-05-10 11:14:37 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();
+            Iterator ipi = ip.iterator(); 
+            while (ipi.hasNext())
+                System.out.print(ipi.next() + " "); 
+            System.out.print("\n");
+        }
+    }
+
+    public FileList(String filename) { 
+        files = new ArrayList(); 
+        probes = new ArrayList(); 
+        currentFileIndex = 0; 
+        this.importFileList(filename);
+        this.randomise(); 
+        this.print(); 
+    }
+}