UrlBeanDefinitionParser.java
01 package gate.util.spring.xml;
02 
03 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
04 import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
05 import org.springframework.util.xml.DomUtils;
06 import org.w3c.dom.Element;
07 
08 /**
09  * Bean definition parser for
10  <code>&lt;gate:url&gt;path&lt;/gate:url&gt;</code>, producing the
11  * equivalent of
12  
13  <pre>
14  * &lt;bean class="gate.util.spring.SpringFactory"
15  *          factory-method="resourceToUrl"&gt;
16  *   &lt;constructor-arg value="path" /&gt;
17  * &lt;/bean&gt;
18  </pre>
19  
20  * The <code>&lt;gate:url&gt;</code> element can take an <code>id</code>
21  * attribute, but in most cases it will be used inline (e.g. as the value
22  * of a property or as an entry in a feature map).
23  */
24 public class UrlBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
25 
26   @Override
27   protected void doParse(Element element, BeanDefinitionBuilder builder) {
28     builder.setFactoryMethod("resourceToUrl");
29     builder.addConstructorArgValue(DomUtils.getTextValue(element));
30   }
31 
32   @Override
33   protected String getBeanClassName(Element element) {
34     return "gate.util.spring.SpringFactory";
35   }
36 
37   @Override
38   protected boolean shouldGenerateIdAsFallback() {
39     return true;
40   }
41 
42 }