private void execute(LogicDefinition extendedLogicDefinition, LogicRequest logicRequest) { ComponentType extendedComponentType = extendedLogicDefinition.getComponentType(); LogicMethod extendedLogicMethod = extendedLogicDefinition.getLogicMethod(); WebApplication application = (WebApplication) logicRequest.getServletContext().getAttribute(WebApplication.class.getName()); BeanProvider beanProvider = application.getIntrospector().getBeanProvider(); try { BeanConstructor contructory = extendedComponentType.getConstructor(); Object extendedComponent = contructory.newInstance(logicRequest, beanProvider); Object[] methodParamObjects = this.readParameter(logicRequest, extendedLogicMethod, extendedComponent); extendedLogicMethod.execute(extendedComponent, logicRequest, methodParamObjects); } catch (ComponentInstantiationException e) { e.printStackTrace(); } catch (LogicException e) { e.printStackTrace(); } catch (SettingException e) { e.printStackTrace(); } }
public void register(ComponentType type) throws LogicNotFoundException { LOG.debug( String.format("Registering component %s as %s", type.getComponentClass(), type.getName())); if (!this.components.containsKey(type.getName())) { this.components.put(type.getName(), new ConcurrentHashMap<String, ComponentType>()); } for (LogicMethod logic : type.getLogics()) { this.components.get(type.getName()).put(logic.getName(), type); } }