/** * Validate and prepare the method overrides defined for this bean. * Checks for existence of a method with the specified name. * @throws BeanDefinitionValidationException in case of validation failure */ public void prepareMethodOverrides() throws BeanDefinitionValidationException { // Check that lookup methods exists. if (hasMethodOverrides()) { Set<MethodOverride> overrides = getMethodOverrides().getOverrides(); synchronized (overrides) { for (MethodOverride mo : overrides) { prepareMethodOverride(mo); } } } }
/** * Validate and prepare the method overrides defined for this bean. * Checks for existence of a method with the specified name. * @throws BeanDefinitionValidationException in case of validation failure */ public void prepareMethodOverrides() throws BeanDefinitionValidationException { // Check that lookup methods exists. if (hasMethodOverrides()) { Set<MethodOverride> overrides = getMethodOverrides().getOverrides(); synchronized (overrides) { for (MethodOverride mo : overrides) { prepareMethodOverride(mo); } } } }
parseLookupOverrideSubElements(ele, bd.getMethodOverrides()); parseReplacedMethodSubElements(ele, bd.getMethodOverrides());
parseLookupOverrideSubElements(ele, bd.getMethodOverrides()); parseReplacedMethodSubElements(ele, bd.getMethodOverrides());
getMethodOverrides().addOverrides(otherAbd.getMethodOverrides());
private void setBaseProperties(AbstractBeanDefinition definition) { definition.setAbstract(true); definition.setAttribute("foo", "bar"); definition.setAutowireCandidate(false); definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE); // definition.getConstructorArgumentValues().addGenericArgumentValue("foo"); definition.setDependencyCheck(AbstractBeanDefinition.DEPENDENCY_CHECK_OBJECTS); definition.setDependsOn(new String[] { "foo", "bar" }); definition.setDestroyMethodName("destroy"); definition.setEnforceDestroyMethod(false); definition.setEnforceInitMethod(true); definition.setFactoryBeanName("factoryBean"); definition.setFactoryMethodName("factoryMethod"); definition.setInitMethodName("init"); definition.setLazyInit(true); definition.getMethodOverrides().addOverride(new LookupOverride("foo", "bar")); definition.getMethodOverrides().addOverride(new ReplaceOverride("foo", "bar")); definition.getPropertyValues().add("foo", "bar"); definition.setResourceDescription("desc"); definition.setRole(BeanDefinition.ROLE_APPLICATION); definition.setScope(BeanDefinition.SCOPE_PROTOTYPE); definition.setSource("foo"); }
getMethodOverrides().addOverrides(otherAbd.getMethodOverrides());
setMethodOverrides(new MethodOverrides(originalAbd.getMethodOverrides()));
setMethodOverrides(new MethodOverrides(originalAbd.getMethodOverrides()));
/** * Validate and prepare the method overrides defined for this bean. * Checks for existence of a method with the specified name. * @throws BeanDefinitionValidationException in case of validation failure */ public void prepareMethodOverrides() throws BeanDefinitionValidationException { // Check that lookup methods exists. MethodOverrides methodOverrides = getMethodOverrides(); if (!methodOverrides.isEmpty()) { for (MethodOverride mo : methodOverrides.getOverrides()) { prepareMethodOverride(mo); } } }
/** * Validate this bean definition. * @throws BeanDefinitionValidationException in case of validation failure */ public void validate() throws BeanDefinitionValidationException { if (!getMethodOverrides().isEmpty() && getFactoryMethodName() != null) { throw new BeanDefinitionValidationException( "Cannot combine static factory method with method overrides: " + "the static factory method must create the instance"); } if (hasBeanClass()) { prepareMethodOverrides(); } }
parseLookupOverrideSubElements(ele, bd.getMethodOverrides()); parseReplacedMethodSubElements(ele, bd.getMethodOverrides());
public MethodOverrides getMethodOverrides() { MethodOverrides currentMethodOverrides = ((AbstractBeanDefinition) currentBeanDefinition).getMethodOverrides(); MethodOverrides mergedMethodOverrides = ((AbstractBeanDefinition) mergedBeanDefinition).getMethodOverrides(); currentMethodOverrides.addOverrides(mergedMethodOverrides); return currentMethodOverrides; }
setEnforceDestroyMethod(otherAbd.isEnforceDestroyMethod()); getMethodOverrides().addOverrides(otherAbd.getMethodOverrides()); setSynthetic(otherAbd.isSynthetic()); setResource(otherAbd.getResource());
private void methodOverrides() { @SuppressWarnings("unchecked") Set<MethodOverride> overrides = bd.getMethodOverrides().getOverrides(); for (MethodOverride override : overrides) { if (override instanceof LookupOverride) { Element lookupMethodElement = beanElement.newSubElement("lookup-method"); String bean = ((LookupOverride) override).getBeanName(); String name = override.getMethodName(); if (bean != null) { lookupMethodElement.addAttribute("bean", new RefValue(bean)); } if (name != null) { lookupMethodElement.addAttribute("name", name); } continue; } if (override instanceof ReplaceOverride) { Element replacedMethodElement = beanElement.newSubElement("replaced-method"); String bean = ((ReplaceOverride) override).getMethodReplacerBeanName(); String name = override.getMethodName(); if (bean != null) { replacedMethodElement.addAttribute("replacer", new RefValue(bean)); } if (name != null) { replacedMethodElement.addAttribute("name", name); } continue; } } }
private void methodOverrides() { @SuppressWarnings("unchecked") Set<MethodOverride> overrides = bd.getMethodOverrides().getOverrides(); for (MethodOverride override : overrides) { if (override instanceof LookupOverride) { Element lookupMethodElement = beanElement.newSubElement("lookup-method"); String bean = ((LookupOverride) override).getBeanName(); String name = override.getMethodName(); if (bean != null) { lookupMethodElement.addAttribute("bean", new RefValue(bean)); } if (name != null) { lookupMethodElement.addAttribute("name", name); } continue; } if (override instanceof ReplaceOverride) { Element replacedMethodElement = beanElement.newSubElement("replaced-method"); String bean = ((ReplaceOverride) override).getMethodReplacerBeanName(); String name = override.getMethodName(); if (bean != null) { replacedMethodElement.addAttribute("replacer", new RefValue(bean)); } if (name != null) { replacedMethodElement.addAttribute("name", name); } continue; } } }
private void addMethodOverrides(final AbstractBeanDefinition beanDefinition, final Class<?> clazz) { final MethodOverrides methodOverrides = beanDefinition.getMethodOverrides(); for (final Method method : clazz.getMethods()) { if (Modifier.isAbstract(method.getModifiers()) && methodOverrides.getOverride(method) == null) { LOGGER.info("Add override for {}.", method); methodOverrides.addOverride(new ReplaceOverride(method.getName(), UNSUPPORTED_METHOD_REPLACER_NAME)); } } }
/** * Generates lookup methods for given bean definition. */ private void generateLookupMethods(final BeanDefinition beanDefinition, final ElementBuilder builder) { if (beanDefinition instanceof AbstractBeanDefinition) { AbstractBeanDefinition def = (AbstractBeanDefinition) beanDefinition; MethodOverrides overrides = def.getMethodOverrides(); @SuppressWarnings({"unchecked"}) Set<MethodOverride> overridesSet = overrides.getOverrides(); for (MethodOverride override : overridesSet) { generateMethodOverride(override, builder); } } }
/** * Generates lookup methods for given bean definition. */ private void generateLookupMethods(final BeanDefinition beanDefinition, final ElementBuilder builder) { if (beanDefinition instanceof AbstractBeanDefinition) { AbstractBeanDefinition def = (AbstractBeanDefinition) beanDefinition; MethodOverrides overrides = def.getMethodOverrides(); @SuppressWarnings({"unchecked"}) Set<MethodOverride> overridesSet = overrides.getOverrides(); for (MethodOverride override : overridesSet) { generateMethodOverride(override, builder); } } }
setDestroyMethodName(originalAbd.getDestroyMethodName()); setEnforceDestroyMethod(originalAbd.isEnforceDestroyMethod()); setMethodOverrides(new MethodOverrides(originalAbd.getMethodOverrides())); setSynthetic(originalAbd.isSynthetic()); setResource(originalAbd.getResource());