/* * $Id: ComponentScopeResolver.java 102464 2013-08-21 15:35:16Z nahlikm1 $ * * Copyright (c) 2010 AspectWorks, spol. s r.o. */ package com.pageobject.component; import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.ScopeMetadata; import org.springframework.context.annotation.ScopeMetadataResolver; import java.util.Map; /** * Resolves bean scope according to {@link Component#value()}. * * @author Pavel Muller * @version $Revision: 102464 $ */ public class ComponentScopeResolver implements ScopeMetadataResolver { /** * @see org.springframework.context.annotation.ScopeMetadataResolver#resolveScopeMetadata(org.springframework.beans.factory.config.BeanDefinition) */ public ScopeMetadata resolveScopeMetadata(BeanDefinition definition) { ScopeMetadata metadata = new ScopeMetadata(); if (definition instanceof AnnotatedBeanDefinition) { AnnotatedBeanDefinition annDef = (AnnotatedBeanDefinition) definition; Map<String, Object> attributes = annDef.getMetadata().getAnnotationAttributes(Component.class.getName()); if (attributes != null) { metadata.setScopeName((String) attributes.get("value")); } } return metadata; } }