/**
*
*/
package br.com.caelum.vraptor.ioc.spring;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanNameGenerator;
public class UniqueBeanNameGenerator implements BeanNameGenerator {
private final BeanNameGenerator delegate;
public UniqueBeanNameGenerator(BeanNameGenerator delegate) {
this.delegate = delegate;
}
public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) {
String name = delegate.generateBeanName(definition, registry);
while (registry.containsBeanDefinition(name) &&
!registry.getBeanDefinition(name).getBeanClassName().equals(definition.getBeanClassName())) {
name = name + '$';
}
return name;
}
}