001package com.thetransactioncompany.util;
002
003
004import java.util.Enumeration;
005import java.util.Properties;
006
007import javax.servlet.ServletConfig;
008import javax.servlet.ServletContext;
009
010
011/**
012 * Static utility methods for converting servlet and context initialisation
013 * parameters to Java properties.
014 *
015 * @author Vladimir Dzhuvinov
016 */
017public class PropertyConverter {
018
019
020        /**
021         * Converts the servlet initialisation parameters (typically specified 
022         * in the {@code web.xml} file) to a Java properties hashtable. The 
023         * parameter names become property keys.
024         *
025         * <p>Note regarding {@code web.xml} markup: The servlet initialisation 
026         * parameters have an XML tag {@code <init-param>} and are defined 
027         * within the {@code <servlet>} element.
028         *
029         * @param config The servlet configuration.
030         *
031         * @return The servlet initialisation parameters as Java properties.
032         */
033        public static Properties getServletInitParameters(final ServletConfig config) {
034        
035                Properties props = new Properties();
036        
037                Enumeration en = config.getInitParameterNames();
038                
039                while (en.hasMoreElements()) {
040                        
041                        String key = (String)en.nextElement();
042                        String value = config.getInitParameter(key);
043                        
044                        props.setProperty(key, value);
045                }
046        
047                return props;
048        }
049        
050        
051        /**
052         * Converts the servlet context initialisation parameters (typically 
053         * specified in the {@code web.xml} file) to a Java properties 
054         * hashtable. The parameter names become property keys.
055         *
056         * <p>Note regarding {@code web.xml} markup: The context parameters 
057         * have an XML tag {@code <context-param>} and are defined within the 
058         * {@code <web-app>} element.
059         *
060         * @param ctx The servlet context.
061         *
062         * @return The servlet context parameters as Java properties.
063         */
064        public static Properties getServletCtxInitParameters(final ServletContext ctx) {
065        
066                Properties props = new Properties();
067        
068                Enumeration en = ctx.getInitParameterNames();
069                
070                while (en.hasMoreElements()) {
071                        
072                        String key = (String)en.nextElement();
073                        String value = ctx.getInitParameter(key);
074                        
075                        props.setProperty(key, value);
076                }
077        
078                return props;
079        }
080}