Clover coverage report -
Coverage timestamp: Mon May 5 2008 11:56:20 GMT-05:00
file stats: LOC: 144   Methods: 1
NCLOC: 100   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
MigrateOldData2.java 0% 0% 0% 0%
coverage
 1    package org.proteomecommons.tranche.util;
 2   
 3    import java.io.File;
 4    import java.util.ArrayList;
 5    import org.proteomecommons.tranche.flatfile.DataBlockUtil;
 6    import org.proteomecommons.tranche.flatfile.DataDirectoryConfiguration;
 7   
 8    /**
 9    * To fix a messup on 213 where I accidentally removed 00, 01, and part of 02
 10    * @author Jayson Falkner - jfalkner@umich.edu
 11    */
 12    public class MigrateOldData2 {
 13   
 14  0 public static void main(String[] args) throws Exception {
 15    // check args
 16  0 if (args.length < 3) {
 17  0 System.out.println("Usage: <-old old data dir> <-new new data dir> ");
 18  0 return;
 19    }
 20   
 21  0 ArrayList<String> oldDataDirectories = new ArrayList();
 22  0 ArrayList<String> newDataDirectories = new ArrayList();
 23    // parse the args
 24  0 for (int i=0;i<args.length-1;i+=2) {
 25    // check for new
 26  0 if (args[i].trim().equals("-new")) {
 27  0 newDataDirectories.add(args[i+1]);
 28    // reality check
 29  0 if (!(new File(args[i+1]).exists())) {
 30  0 System.out.println(args[i+1]+" is not a directory! Exiting.");
 31  0 return;
 32    }
 33    }
 34    // check for old
 35  0 if (args[i].trim().equals("-old")) {
 36  0 oldDataDirectories.add(args[i+1]);
 37    // reality check
 38  0 if (!(new File(args[i+1]).exists())) {
 39  0 System.out.println(args[i+1]+" is not a directory! Exiting.");
 40  0 return;
 41    }
 42    }
 43    }
 44   
 45    // show the args
 46  0 System.out.println("*** Old Directories ***");
 47  0 for (String f : oldDataDirectories) {
 48  0 System.out.println(" "+f);
 49    }
 50  0 System.out.println("*** New Directories ***");
 51  0 for (String f : newDataDirectories) {
 52  0 System.out.println(" "+f);
 53    }
 54   
 55    // make a data block util for the new format
 56  0 DataBlockUtil dbu = new DataBlockUtil();
 57   
 58    // use a set of directories for the new
 59  0 System.out.println("*** Data Directory Configurations ***");
 60  0 for (String s : newDataDirectories) {
 61  0 DataDirectoryConfiguration ddc = new DataDirectoryConfiguration(s, Long.MAX_VALUE);
 62  0 dbu.add(ddc);
 63  0 System.out.println(" "+s);
 64    }
 65   
 66    // // temporarily exit so that the above is tested
 67    // if (true) System.exit(1);
 68   
 69    // iterate over the old directories. migrate the data over one directory at a time.
 70  0 for (String oldDirString : oldDataDirectories) {
 71    // make the directory
 72  0 File oldDataDirectory = new File(oldDirString);
 73  0 System.out.println("Migrating Directory: "+oldDataDirectory);
 74   
 75  0 File[] firstLevel = oldDataDirectory.listFiles();
 76  0 for (int i=0;i<firstLevel.length;i++) {
 77  0 File[] secondLevel = firstLevel[i].listFiles();
 78  0 for (int j=0;j<secondLevel.length;j++) {
 79    // handle all of the actual files
 80  0 File[] dirs = secondLevel[j].listFiles();
 81  0 for (int k=0;k<dirs.length;k++) {
 82    // make the big hash
 83  0 BigHash hash = BigHash.createHashFromString(dirs[k].getName());
 84    {
 85    // handle all of the data/meta-data pairs
 86  0 File data = new File(dirs[k], "data");
 87  0 if (data.exists()) {
 88    // get the bytes
 89  0 byte[] bytes = IOUtil.getBytes(data);
 90    // add to the dbu
 91  0 dbu.addData(hash, bytes);
 92   
 93    // purge the file
 94  0 boolean deleted = data.delete();
 95  0 if (!deleted) System.out.println("Can't delete "+data);
 96    }
 97    }
 98    {
 99    // handle all of the data/meta-data pairs
 100  0 File metaData = new File(dirs[k], "metaData");
 101  0 if (metaData.exists()) {
 102    // get the bytes
 103  0 byte[] bytes = IOUtil.getBytes(metaData);
 104    // add to the dbu
 105  0 dbu.addMetaData(hash, bytes);
 106   
 107    // purge the file
 108  0 boolean deleted = metaData.delete();
 109  0 if (!deleted) System.out.println("Can't delete "+metaData);
 110    }
 111    }
 112    // purge if empty
 113  0 String[] checkEmpty = dirs[k].list();
 114  0 if (checkEmpty == null || checkEmpty.length == 0) {
 115  0 boolean deleted = dirs[k].delete();
 116  0 if (!deleted) System.out.println("Can't delete "+dirs[k]);
 117    } else {
 118  0 System.out.println("Directory not empty!? "+dirs[k]);
 119    }
 120    }
 121    // purge second dir if empty
 122  0 String[] checkEmpty = secondLevel[j].list();
 123  0 if (checkEmpty == null || checkEmpty.length == 0) {
 124  0 boolean deleted = secondLevel[j].delete();
 125  0 if (!deleted) System.out.println("Can't delete "+secondLevel[j]);
 126    } else {
 127  0 System.out.println("Directory not empty!? "+secondLevel[j]);
 128    }
 129    }
 130    // purge first dir if empty
 131  0 String[] checkEmpty = firstLevel[i].list();
 132  0 if (checkEmpty == null || checkEmpty.length == 0) {
 133  0 boolean deleted = firstLevel[i].delete();
 134  0 if (!deleted) System.out.println("Can't delete "+firstLevel[i]);
 135    } else {
 136  0 System.out.println("Directory not empty!? "+firstLevel[i]);
 137    }
 138   
 139    // print out status
 140  0 System.out.println("Finished "+i+" out of "+firstLevel.length);
 141    }
 142    }
 143    }
 144    }