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><gate:url>path</gate:url></code>, producing the
11 * equivalent of
12 *
13 * <pre>
14 * <bean class="gate.util.spring.SpringFactory"
15 * factory-method="resourceToUrl">
16 * <constructor-arg value="path" />
17 * </bean>
18 * </pre>
19 *
20 * The <code><gate:url></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.addConstructorArg(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 }
|