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 org.springframework.beans.factory.support.GenericBeanDefinition; import org.springframework.beans.factory.xml.NamespaceHandlerSupport; import pl.chilldev.web.spring.context.PageMetaModelFactoryBean; /** * Handles Spring XML configuration namespace for ChillDev-Web. * * @version 0.0.2 * @since 0.0.1 */ public class WebNamespaceHandler extends NamespaceHandlerSupport { /** * Core initialization on-demand. */ public static final String ELEMENT_HANDLEPAGEMODEL = "handle-page-model"; /** * XML namespace. */ public static final String ELEMENT_XMLNS = "xmlns"; /** * Page title. */ public static final String ELEMENT_TITLE = "title"; /** * Metadata with `name=""` attribute as key. */ public static final String ELEMENT_METANAME = "meta-name"; /** * Metadata with `http-equiv=""` attribute as key. */ public static final String ELEMENT_METAHTTPEQUIV = "meta-http-equiv"; /** * Metadata with `property=""` attribute as key. */ public static final String ELEMENT_METAPROPERTY = "meta-property"; /** * Page keywords. */ public static final String ELEMENT_KEYWORDS = "keywords"; /** * `<script> element. */ public static final String ELEMENT_SCRIPT = "script"; /** * `<link> element. */ public static final String ELEMENT_LINK = "link"; /** * `<link> element with `rel=""` attribute set to `stylesheet`. */ public static final String ELEMENT_STYLESHEET = "stylesheet"; /** * {@inheritDoc} * @since 0.0.1 */ @Override public void init() { // create bean instance that will be subject for all other settings GenericBeanDefinition pageMetaModelFactoryBean = new GenericBeanDefinition(); pageMetaModelFactoryBean.setBeanClass(PageMetaModelFactoryBean.class); this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_HANDLEPAGEMODEL, new HandlePageModelBeanDefinitionParser(pageMetaModelFactoryBean)); this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_XMLNS, new XmlnsBeanDefinitionParser(pageMetaModelFactoryBean)); this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_TITLE, new TitleBeanDefinitionParser(pageMetaModelFactoryBean)); this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_METANAME, new MetaNameBeanDefinitionParser(pageMetaModelFactoryBean)); this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_METAHTTPEQUIV, new MetaHttpEquivBeanDefinitionParser(pageMetaModelFactoryBean)); this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_METAPROPERTY, new MetaPropertyBeanDefinitionParser(pageMetaModelFactoryBean)); this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_KEYWORDS, new MetaPropertyBeanDefinitionParser(pageMetaModelFactoryBean)); this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_SCRIPT, new ScriptBeanDefinitionParser(pageMetaModelFactoryBean)); this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_LINK, new LinkBeanDefinitionParser(pageMetaModelFactoryBean)); this.registerBeanDefinitionParser(WebNamespaceHandler.ELEMENT_STYLESHEET, new StylesheetBeanDefinitionParser(pageMetaModelFactoryBean)); } }