Java tutorial
/** * This file is part of the ChillDev-Web. * * @license http://mit-license.org/ The MIT license * @copyright 2014 by Rafa Wrzeszcz - Wrzasq.pl. */ package pl.chilldev.web.spring.config; import java.util.ArrayList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.util.xml.DomUtils; import org.w3c.dom.Element; /** * `<keywords>` element parser. * * @version 0.0.2 * @since 0.0.1 */ public class KeywordsBeanDefinitionParser implements BeanDefinitionParser { /** * `<keyword>` element name. */ public static final String ELEMENT_KEYWORD = "keyword"; /** * Keywords property name. */ public static final String PROPERTY_KEYWORDS = "keywords"; /** * Logger. */ protected Logger logger = LoggerFactory.getLogger(KeywordsBeanDefinitionParser.class); /** * Initial keywords. */ protected List<String> keywords = new ArrayList<>(); /** * Initializes bean parser. * * @param pageMetaModelFactoryBean Page model factory. * @since 0.0.2 */ public KeywordsBeanDefinitionParser(BeanDefinition pageMetaModelFactoryBean) { pageMetaModelFactoryBean.getPropertyValues() .addPropertyValue(KeywordsBeanDefinitionParser.PROPERTY_KEYWORDS, this.keywords); } /** * {@inheritDoc} * @since 0.0.1 */ @Override public BeanDefinition parse(Element element, ParserContext parserContext) { String keyword; for (Element child : DomUtils.getChildElementsByTagName(element, KeywordsBeanDefinitionParser.ELEMENT_KEYWORD)) { keyword = DomUtils.getTextValue(child); this.logger.info("Adding \"{}\" as keyword.", keyword); this.keywords.add(keyword); } return null; } }