
pl.chilldev.web.spring.config.KeywordsBeanDefinitionParser Maven / Gradle / Ivy
/**
* This file is part of the ChillDev-Web.
*
* @license http://mit-license.org/ The MIT license
* @copyright 2014 - 2015 © 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.
*/
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.
*/
private Logger logger = LoggerFactory.getLogger(KeywordsBeanDefinitionParser.class);
/**
* Initial keywords.
*/
private List keywords = new ArrayList<>();
/**
* Initializes bean parser.
*
* @param pageMetaModelFactoryBean Page model factory.
*/
public KeywordsBeanDefinitionParser(BeanDefinition pageMetaModelFactoryBean)
{
pageMetaModelFactoryBean.getPropertyValues().addPropertyValue(
KeywordsBeanDefinitionParser.PROPERTY_KEYWORDS,
this.keywords
);
}
/**
* {@inheritDoc}
*/
@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;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy