View Javadoc

1   package com.atlassian.plugin.spring.pluginns;
2   
3   import com.atlassian.plugin.spring.PluginBeanDefinitionRegistry;
4   import org.springframework.beans.factory.config.BeanDefinitionHolder;
5   import org.springframework.beans.factory.xml.BeanDefinitionDecorator;
6   import org.springframework.beans.factory.xml.ParserContext;
7   import org.w3c.dom.Node;
8   
9   /**
10   * Matches the <plugin:interface> element and registers it against the bean for later processing.
11   */
12  public class PluginInterfaceBeanDefinitionDecorator implements BeanDefinitionDecorator
13  {
14      /**
15       * Called when the Spring parser encounters an "interface" element.
16       * @param source The interface element
17       * @param holder The containing bean definition
18       * @param ctx The parser context
19       * @return The containing bean definition
20       */
21      public BeanDefinitionHolder decorate(Node source, BeanDefinitionHolder holder, ParserContext ctx)
22      {
23          final String inf = source.getTextContent();
24          if (inf != null)
25          {
26              new PluginBeanDefinitionRegistry(ctx.getRegistry()).addBeanInterface(holder.getBeanName(), inf.trim());
27          }
28          return holder;
29      }
30  }