1 16 package org.outerj.daisy.backupTool; 17 18 import java.io.File ; 19 import java.util.List ; 20 21 import org.jaxen.dom.DOMXPath; 22 import org.w3c.dom.Document ; 23 import org.w3c.dom.Element ; 24 25 public class FileListEntryLoader extends AbstractEntryLoader { 26 27 public FileListEntryLoader(File listFile) throws Exception { 28 super(listFile); 29 } 30 31 public void createEntries(BackupInstance buInstance) throws Exception { 32 List entryNodes = new DOMXPath("/backup-entries/backup-entry").selectNodes(configDocument); 33 for (int i = 0; i < entryNodes.size(); i++) { 34 Element entryElement = (Element ) entryNodes.get(i); 35 String name = BackupHelper.getStringFromDom(entryElement, "@name"); 36 File basedir = new File (BackupHelper.getStringFromDom(entryElement, "@basedir")); 37 File backupFile = new File (buInstance.getDirectory(), name + ".zip"); 38 39 List elements = new DOMXPath("paths/path").selectNodes(entryElement); 40 FileBackupEntry entry = new FileBackupEntry(backupFile, basedir, buInstance); 41 for (int j = 0; j < elements.size(); j++) { 42 Element element = (Element ) elements.get(j); 43 entry.addFileToBackup(new File (basedir, BackupHelper.getStringFromDom(element, "."))); 44 } 45 buInstance.addEntry(entry); 46 } 47 File backuppedList = new File (buInstance.getDirectory(), configFile.getName()); 48 if (!backuppedList.exists()) 49 BackupHelper.copyFile(configFile, backuppedList); 50 51 } 52 53 public void reloadEntries(BackupInstance buInstance) throws Exception { 54 File oldConfigFile = configFile; 55 Document oldConfigDocument = configDocument; 56 57 configFile = new File (buInstance.getDirectory(), configFile.getName()); 58 configDocument = BackupHelper.parseFile(configFile); 59 60 List entryNodes = new DOMXPath("/backup-entries/backup-entry").selectNodes(configDocument); 61 String [] entries = new String [entryNodes.size()]; 62 for (int i = 0; i < entryNodes.size(); i++) { 63 Element entryElement = (Element ) entryNodes.get(i); 64 entries[i] = BackupHelper.getStringFromDom(entryElement, "@name") + ".zip"; 65 } 66 67 if (areFilesBackedUp(buInstance, entries)) 68 createEntries(buInstance); 69 else 70 System.out.println("Additional backup entries were not found. Skipping restoration of these files"); 71 72 configFile = oldConfigFile; 73 configDocument = oldConfigDocument; 74 } 75 } 76 | Popular Tags |