/** * Decorates methods signatures of given clazz. * * @param clazz class to decorate * @param classLoader The classloader where generated class should be * placed. * @return new class with decorated methods signatures: added * {@link IRulesRuntimeContext} as the first parameter for each * method. * @throws Exception */ public static Class<?> decorateClass(Class<?> clazz, ClassLoader classLoader) throws Exception { final Logger log = LoggerFactory.getLogger(RuntimeContextInstantiationStrategyEnhancerHelper.class); Method[] methods = clazz.getMethods(); List<RuleInfo> rules = getRulesDecorated(methods); String className = clazz.getName() + DECORATED_CLASS_NAME_SUFFIX; RuleInfo[] rulesArray = rules.toArray(new RuleInfo[rules.size()]); log.debug("Generating interface for '{}' class", clazz.getName()); return InterfaceGenerator.generateInterface(className, rulesArray, classLoader); }
/** * Decorates methods signatures of given clazz. * * @param clazz class to decorate * @param classLoader The classloader where generated class should be * placed. * @return new class with decorated methods signatures: added * {@link IRulesRuntimeContext} as the first parameter for each * method. * @throws Exception */ public static Class<?> decorateClass(Class<?> clazz, ClassLoader classLoader) throws Exception { final Logger log = LoggerFactory.getLogger(RuntimeContextInstantiationStrategyEnhancerHelper.class); Method[] methods = clazz.getMethods(); List<RuleInfo> rules = getRulesDecorated(methods); String className = clazz.getName() + DECORATED_CLASS_NAME_SUFFIX; RuleInfo[] rulesArray = rules.toArray(new RuleInfo[rules.size()]); log.debug("Generating interface for '{}' class", clazz.getName()); return InterfaceGenerator.generateInterface(className, rulesArray, classLoader); }