SetParameterBeanDefinitionParser.java
01 /*
02  *  SetParameterBeanDefinitionParser.java
03  *
04  *  Copyright (c) 1995-2012, The University of Sheffield. See the file
05  *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
06  *
07  *  This file is part of GATE (see http://gate.ac.uk/), and is free
08  *  software, licenced under the GNU Library General Public License,
09  *  Version 2, June 1991 (in the distribution as file licence.html,
10  *  and also available at http://gate.ac.uk/gate/licence.html).
11  *
12  *  Ian Roberts, 22/Jan/2008
13  *
14  *  $Id: SetParameterBeanDefinitionParser.java 17657 2014-03-14 09:08:56Z markagreenwood $
15  */
16 
17 package gate.util.spring.xml;
18 
19 import gate.util.spring.SetParameterResourceCustomiser;
20 
21 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
22 import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
23 import org.springframework.beans.factory.xml.ParserContext;
24 import org.w3c.dom.Element;
25 
26 /**
27  * BeanDefinitionParser for <code>&lt;gate:set-parameter&gt;</code>,
28  * producing a definition of a {@link SetParameterResourceCustomiser}
29  * object.
30  */
31 public class SetParameterBeanDefinitionParser
32                                              extends
33                                                AbstractSingleBeanDefinitionParser {
34 
35   @Override
36   protected void doParse(Element element, ParserContext parserContext,
37           BeanDefinitionBuilder builder) {
38     // never null by schema
39     builder.addPropertyValue("paramName", element.getAttribute("name"));
40     if(element.hasAttribute("pr-name")) {
41       builder.addPropertyValue("prName", element.getAttribute("pr-name"));
42     }
43 
44     builder.addPropertyValue("value", parserContext.getDelegate()
45             .parsePropertyValue(element, builder.getRawBeanDefinition(),
46                     "value"));
47   }
48 
49   @Override
50   protected Class<?> getBeanClass(Element element) {
51     return SetParameterResourceCustomiser.class;
52   }
53 
54 }