KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > outerj > daisy > backupTool > FileListEntryLoader


1 /*
2  * Copyright 2004 Outerthought bvba and Schaubroeck nv
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.outerj.daisy.backupTool;
17
18 import java.io.File JavaDoc;
19 import java.util.List JavaDoc;
20
21 import org.jaxen.dom.DOMXPath;
22 import org.w3c.dom.Document JavaDoc;
23 import org.w3c.dom.Element JavaDoc;
24
25 public class FileListEntryLoader extends AbstractEntryLoader {
26
27     public FileListEntryLoader(File JavaDoc listFile) throws Exception JavaDoc {
28         super(listFile);
29     }
30
31     public void createEntries(BackupInstance buInstance) throws Exception JavaDoc {
32         List JavaDoc entryNodes = new DOMXPath("/backup-entries/backup-entry").selectNodes(configDocument);
33         for (int i = 0; i < entryNodes.size(); i++) {
34             Element JavaDoc entryElement = (Element JavaDoc) entryNodes.get(i);
35             String JavaDoc name = BackupHelper.getStringFromDom(entryElement, "@name");
36             File JavaDoc basedir = new File JavaDoc(BackupHelper.getStringFromDom(entryElement, "@basedir"));
37             File JavaDoc backupFile = new File JavaDoc(buInstance.getDirectory(), name + ".zip");
38
39             List JavaDoc 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 JavaDoc element = (Element JavaDoc) elements.get(j);
43                 entry.addFileToBackup(new File JavaDoc(basedir, BackupHelper.getStringFromDom(element, ".")));
44             }
45             buInstance.addEntry(entry);
46         }
47         File JavaDoc backuppedList = new File JavaDoc (buInstance.getDirectory(), configFile.getName());
48         if (!backuppedList.exists())
49             BackupHelper.copyFile(configFile, backuppedList);
50         
51     }
52
53     public void reloadEntries(BackupInstance buInstance) throws Exception JavaDoc {
54         File JavaDoc oldConfigFile = configFile;
55         Document JavaDoc oldConfigDocument = configDocument;
56         
57         configFile = new File JavaDoc (buInstance.getDirectory(), configFile.getName());
58         configDocument = BackupHelper.parseFile(configFile);
59         
60         List JavaDoc entryNodes = new DOMXPath("/backup-entries/backup-entry").selectNodes(configDocument);
61         String JavaDoc[] entries = new String JavaDoc[entryNodes.size()];
62         for (int i = 0; i < entryNodes.size(); i++) {
63             Element JavaDoc entryElement = (Element JavaDoc) 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