1 6 package org.logicalcobwebs.proxool.proxy; 7 8 import org.logicalcobwebs.proxool.ProxoolException; 9 10 import java.util.Map ; 11 import java.util.HashMap ; 12 import java.lang.reflect.Method ; 13 import java.lang.reflect.Modifier ; 14 15 22 public class InvokerFacade { 23 24 private static Map methodMappers = new HashMap (); 25 26 34 public static Method getConcreteMethod(Class concreteClass, Method injectableMethod) throws ProxoolException { 35 if (Modifier.isPublic(concreteClass.getModifiers())) { 37 Object key = concreteClass.getName() + ":" + injectableMethod.getName(); 38 MethodMapper methodMapper = (MethodMapper) methodMappers.get(key); 39 if (methodMapper == null) { 40 methodMapper = new MethodMapper(concreteClass); 41 methodMappers.put(key, methodMapper); 42 } 43 return methodMapper.getConcreteMethod(injectableMethod); 44 } else { 45 return injectableMethod; 46 } 47 } 48 49 57 public static void overrideConcreteMethod(Class concreteClass, Method injectableMethod, Method overridenMethod) { 58 Object key = concreteClass.getName() + ":" + injectableMethod.getName(); 59 MethodMapper methodMapper = (MethodMapper) methodMappers.get(key); 60 if (methodMapper == null) { 61 methodMapper = new MethodMapper(concreteClass); 62 methodMappers.put(key, methodMapper); 63 } 64 methodMapper.overrideConcreteMethod(injectableMethod, overridenMethod); 65 } 66 67 } 68 | Popular Tags |