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 }