Class SpringNamespaceHandler.SpringBeanBuilder

  • All Implemented Interfaces:
    com.tangosol.coherence.config.builder.ParameterizedBuilder<Object>, com.tangosol.coherence.config.builder.ParameterizedBuilder.ReflectionSupport
    Enclosing class:
    SpringNamespaceHandler

    public static class SpringNamespaceHandler.SpringBeanBuilder
    extends Object
    implements com.tangosol.coherence.config.builder.ParameterizedBuilder<Object>, com.tangosol.coherence.config.builder.ParameterizedBuilder.ReflectionSupport
    Implementation of ParameterizedBuilder that "realizes" a named bean from a Spring BeanFactory. The BeanFactory is obtained via the following:
    1. The BeanFactory is looked up in the constructor provided ResourceRegistry via the factory name indicated by getFactoryName()
    2. If the BeanFactory is not present in the registry, a SpringNamespaceHandler.SpringBeanFactoryBuilder via the same name will be looked up in the registry, and this builder will realize an instance of the BeanFactory
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface com.tangosol.coherence.config.builder.ParameterizedBuilder

        com.tangosol.coherence.config.builder.ParameterizedBuilder.ReflectionSupport
    • Constructor Detail

      • SpringBeanBuilder

        public SpringBeanBuilder​(com.tangosol.util.ResourceRegistry registry)
        Parameters:
        registry - the ResourceRegistry this builder will use to locate the BeanFactory that will provide the requested bean
    • Method Detail

      • getFactoryName

        public com.tangosol.config.expression.Expression<String> getFactoryName()
        Return an Expression used to determine the name of the BeanFactory used by this builder.
        Returns:
        an Expression for the BeanFactory name
      • setFactoryName

        @Injectable
        public void setFactoryName​(com.tangosol.config.expression.Expression<String> exprFactoryName)
        Set the Expression used to determine the name of the BeanFactory used by this builder.
        Parameters:
        exprFactoryName - the Expression for the BeanFactory name
      • getBeanName

        public com.tangosol.config.expression.Expression<String> getBeanName()
        Return an Expression used to determine the name of the bean provided by this builder.
        Returns:
        an Expression for the bean name
      • setBeanName

        @Injectable
        public void setBeanName​(com.tangosol.config.expression.Expression<String> exprBeanName)
        Set the Expression used to determine the name of the bean provided by this builder.
        Parameters:
        exprBeanName - an Expression for the bean name
      • getParameterList

        public com.tangosol.coherence.config.ParameterList getParameterList()
        Return the ParameterList containing optional properties to inject into the realized bean.
        Returns:
        the ParameterList
      • setParameterList

        public void setParameterList​(com.tangosol.coherence.config.ParameterList listParameters)
        Sets the ParameterList containing optional properties to inject into the realized bean.
        Parameters:
        listParameters - the ParameterList
      • realize

        public Object realize​(com.tangosol.config.expression.ParameterResolver resolver,
                              ClassLoader loader,
                              com.tangosol.coherence.config.ParameterList listParameters)
        Specified by:
        realize in interface com.tangosol.coherence.config.builder.ParameterizedBuilder<Object>
      • realizes

        public boolean realizes​(Class<?> clzClass,
                                com.tangosol.config.expression.ParameterResolver resolver,
                                ClassLoader loader)
        Specified by:
        realizes in interface com.tangosol.coherence.config.builder.ParameterizedBuilder.ReflectionSupport
      • ensureBeanFactory

        protected BeanFactory ensureBeanFactory​(com.tangosol.config.expression.ParameterResolver resolver,
                                                ClassLoader loader)
        Ensure the BeanFactory used by this builder to provide the bean indicated via getBeanName().
        Parameters:
        resolver - the ParameterResolver to use for resolving parameters
        loader - the ClassLoader for loading any necessary classes
        Returns:
        the BeanFactory used by this builder