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 }