001    package org.shiftone.jrat.core.config;
002    
003    import org.shiftone.jrat.core.spi.MethodHandlerFactory;
004    import org.shiftone.jrat.util.PropertyUtil;
005    import org.shiftone.jrat.util.io.ResourceUtil;
006    import org.shiftone.jrat.util.log.Logger;
007    
008    import java.util.HashMap;
009    import java.util.Map;
010    
011    
012    /**
013     * @author jeff@shiftone.org (Jeff Drost)
014     */
015    public class Handler {
016    
017        private static final Logger LOG = Logger.getLogger(Handler.class);
018        private String className;
019        private Map properties = new HashMap();
020    
021        public String getClassName() {
022            return className;
023        }
024    
025        public void setClassName(String className) {
026            this.className = className;
027        }
028    
029        public Map getProperties() {
030            return properties;
031        }
032    
033        /**
034         * column a new instance of a configured factory
035         */
036        public MethodHandlerFactory buildMethodHandlerFactory() {
037    
038            Object instance = ResourceUtil.newInstance(className);
039    
040            PropertyUtil.setProperties(instance, properties);
041    
042            return (MethodHandlerFactory) instance;
043    
044        }
045    
046    }