AddPRBeanDefinitionParser.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: AddPRBeanDefinitionParser.java 17657 2014-03-14 09:08:56Z markagreenwood $
15  */
16 
17 package gate.util.spring.xml;
18 
19 import gate.util.spring.AddPRResourceCustomiser;
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:add-pr&gt;</code>,
28  * producing a definition of a {@link AddPRResourceCustomiser}
29  * object.
30  */
31 public class AddPRBeanDefinitionParser
32                                              extends
33                                                AbstractSingleBeanDefinitionParser {
34 
35   @Override
36   protected void doParse(Element element, ParserContext parserContext,
37           BeanDefinitionBuilder builder) {
38     if(element.hasAttribute("add-before")) {
39       builder.addPropertyValue("addBefore", element.getAttribute("add-before"));
40     }
41     if(element.hasAttribute("add-after")) {
42       builder.addPropertyValue("addAfter", element.getAttribute("add-after"));
43     }
44     if(element.hasAttribute("index")) {
45       builder.addPropertyValue("index", element.getAttribute("index"));
46     }
47     
48     builder.addPropertyValue("pr", parserContext.getDelegate()
49             .parsePropertyValue(element, builder.getRawBeanDefinition(),
50                     "pr"));
51   }
52 
53   @Override
54   protected Class<?> getBeanClass(Element element) {
55     return AddPRResourceCustomiser.class;
56   }
57 
58 }