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