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    }