001 /* 002 @license.text@ 003 */ 004 package biz.hammurapi.config.adapters; 005 006 import java.io.IOException; 007 import java.io.InputStream; 008 009 import javax.xml.parsers.DocumentBuilderFactory; 010 import javax.xml.parsers.FactoryConfigurationError; 011 import javax.xml.parsers.ParserConfigurationException; 012 013 import org.xml.sax.SAXException; 014 015 import biz.hammurapi.config.ConfigurationException; 016 import biz.hammurapi.config.Context; 017 import biz.hammurapi.config.DomConfigurable; 018 import biz.hammurapi.config.InputStreamConfigurable; 019 020 /** 021 * Converts {@link biz.hammurapi.config.DomConfigurable} to {@link biz.hammurapi.config.InputStreamConfigurable} 022 * @author Pavel Vlasov 023 * @version $Revision: 1.2 $ 024 */ 025 public class InputStream2DomConfigurableAdapter implements InputStreamConfigurable { 026 027 private DomConfigurable domConfigurable; 028 029 /** 030 * 031 */ 032 public InputStream2DomConfigurableAdapter(DomConfigurable domConfigurable) { 033 super(); 034 this.domConfigurable=domConfigurable; 035 } 036 037 /* (non-Javadoc) 038 * @see biz.hammurapi.config.InputStreamConfigurable#configure(java.io.InputStream) 039 */ 040 public void configure(InputStream in, Context context) throws ConfigurationException { 041 try { 042 domConfigurable.configure( 043 DocumentBuilderFactory 044 .newInstance() 045 .newDocumentBuilder() 046 .parse(in) 047 .getDocumentElement(), context); 048 } catch (SAXException e) { 049 throw new ConfigurationException(e); 050 } catch (IOException e) { 051 throw new ConfigurationException(e); 052 } catch (ParserConfigurationException e) { 053 throw new ConfigurationException(e); 054 } catch (FactoryConfigurationError e) { 055 throw new ConfigurationException(e); 056 } 057 } 058 059 }