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 }