1
2
3
4
5
6
7 package org.asyrinx.joey.gen.ant;
8
9 import java.io.File;
10 import java.io.IOException;
11 import java.util.List;
12
13 import org.apache.tools.ant.DirectoryScanner;
14 import org.apache.tools.ant.Project;
15 import org.apache.tools.ant.types.FileSet;
16 import org.asyrinx.joey.gen.model.rdb.Databases;
17 import org.asyrinx.joey.gen.model.rdb.xml.XmlToRdb;
18 import org.xml.sax.SAXException;
19
20 /***
21 * @author takeshi
22 */
23 public class DatabasesLoaderImpl implements DatabasesLoader {
24
25 /***
26 *
27 */
28 public DatabasesLoaderImpl(XmlToRdb xmlToRdb) {
29 super();
30 this.xmlToRdb = xmlToRdb;
31 }
32
33 private final XmlToRdb xmlToRdb;
34
35 public Databases load(List filesets, Project project) throws IOException, SAXException {
36 final Databases databases = new Databases();
37
38 for (int i = 0; i < filesets.size(); i++) {
39 final FileSet fs = (FileSet) filesets.get(i);
40 final File srcDir = fs.getDir(project);
41 final DirectoryScanner ds = fs.getDirectoryScanner(project);
42 final String[] dataModelFiles = ds.getIncludedFiles();
43 for (int j = 0; j < dataModelFiles.length; j++) {
44 final File f = new File(srcDir, dataModelFiles[j]);
45 final Databases loaded = loadModelXmlFile(f.toString());
46 databases.appendDatabases(loaded);
47 }
48 }
49 return databases;
50 }
51
52 protected Databases loadModelXmlFile(String filename) throws IOException, SAXException {
53 return xmlToRdb.load(filename);
54 }
55
56 }