1 package org.thema.scriptware.digester;
2 import java.io.IOException;
3 import java.io.InputStream;
4 import java.util.HashMap;
5 import java.util.Map;
6 import org.apache.commons.digester.Digester;
7
8 public class DigesterDatasource {
9 HashMap datasources;
10 private InputStream file;
11
12
13 public DigesterDatasource(InputStream file) {
14 this.file = file;
15 datasources = new HashMap();
16 }
17
18 public void digest() throws IOException,org.xml.sax.SAXException {
19 try {
20 Digester digester = new Digester();
21 digester.push(this);
22
23 digester.addObjectCreate( "datasources/datasource", Datasource.class);
24
25 digester.addBeanPropertySetter( "datasources/datasource/name");
26 digester.addBeanPropertySetter( "datasources/datasource/url");
27 digester.addBeanPropertySetter( "datasources/datasource/driver");
28 digester.addBeanPropertySetter( "datasources/datasource/user");
29 digester.addBeanPropertySetter( "datasources/datasource/pass");
30
31 digester.addSetNext( "datasources/datasource", "addDatasource" );
32
33 DigesterDatasource ds = (DigesterDatasource) digester.parse(file);
34
35 } catch (IOException e) {
36 throw new IOException("Erro de I/O ao utilizar o arquivo!");
37 } catch (org.xml.sax.SAXException ex) {
38 throw new org.xml.sax.SAXException("Erro realizando parse de arquivo datasources.xml!");
39 }
40 }
41
42 public void addDatasource( Datasource ds ) {
43 datasources.put(ds.getName(),ds);
44 }
45 public Map getDatasources(){
46 return datasources;
47 }
48 }