Package org.springframework.core

Examples of org.springframework.core.ResolvableType$DefaultVariableResolver


    return message;
  }

  private Class<?> getPayloadType(MethodParameter parameter) {
    Type genericParamType = parameter.getGenericParameterType();
    ResolvableType resolvableType = ResolvableType.forType(genericParamType).as(Message.class);
    return resolvableType.getGeneric(0).resolve(Object.class);
  }
View Full Code Here


    AcrossContextBeanRegistry registry = AcrossContextUtils.getBeanRegistry( context );
    List<GenericBean> beans = registry.getBeansOfType( GenericBean.class, true );

    assertEquals( 6, beans.size() );

    ResolvableType listType = ResolvableType.forClassWithGenerics( List.class, Integer.class );
    ResolvableType type = ResolvableType.forClassWithGenerics( GenericBean.class,
                                                               ResolvableType.forClass( Long.class ),
                                                               listType
    );

    beans = registry.getBeansOfType( type, true );
View Full Code Here

   * Used to get all beans matching a ResolvableType from the
   * {@link com.foreach.across.core.context.registry.AcrossContextBeanRegistry}.
   */
  @Override
  protected boolean checkGenericTypeMatch( BeanDefinitionHolder bdHolder, DependencyDescriptor descriptor ) {
    ResolvableType dependencyType = descriptor.getResolvableType();

    ResolvableType targetType = null;
    RootBeanDefinition rbd = null;
    if ( bdHolder.getBeanDefinition() instanceof RootBeanDefinition ) {
      rbd = (RootBeanDefinition) bdHolder.getBeanDefinition();
    }
    if ( rbd != null ) {
      // First, check factory method return type, if applicable
      targetType = getReturnTypeForFactoryMethod( rbd, descriptor );
      if ( targetType == null ) {
        RootBeanDefinition dbd = getResolvedDecoratedDefinition( rbd );
        if ( dbd != null ) {
          targetType = getReturnTypeForFactoryMethod( dbd, descriptor );
        }
      }
    }
    if ( targetType == null ) {
      // Regular case: straight bean instance, with BeanFactory available.
      if ( getBeanFactory() != null ) {
        Class<?> beanType = getBeanFactory().getType( bdHolder.getBeanName() );
        if ( beanType != null ) {
          targetType = ResolvableType.forClass( ClassUtils.getUserClass( beanType ) );
        }
      }
      // Fallback: no BeanFactory set, or no type resolvable through it
      // -> best-effort match against the target class if applicable.
      if ( targetType == null && rbd != null && rbd.hasBeanClass() && rbd.getFactoryMethodName() == null ) {
        Class<?> beanClass = rbd.getBeanClass();
        if ( !FactoryBean.class.isAssignableFrom( beanClass ) ) {
          targetType = ResolvableType.forClass( ClassUtils.getUserClass( beanClass ) );
        }
      }
    }
    if ( targetType == null || ( descriptor.fallbackMatchAllowed() && targetType.hasUnresolvableGenerics() ) ) {
      return true;
    }
    // Full check for complex generic type match...
    return dependencyType.isAssignableFrom( targetType );
  }
View Full Code Here

{
  @Override
  public boolean accepts( AcrossEvent message, MessageHandler metadata ) {
    if ( message instanceof ParameterizedAcrossEvent ) {
      ResolvableType[] types = ( (ParameterizedAcrossEvent) message ).getEventGenericTypes();
      ResolvableType eventType = ResolvableType.forMethodParameter( metadata.getHandler(), 0 );

      ResolvableType[] generics = eventType.getGenerics();

      if ( generics.length > 0 && types.length != generics.length ) {
        return false;
      }

      for ( int i = 0; i < generics.length; i++ ) {
        ResolvableType genericType = generics[i];

        if ( !genericType.isAssignableFrom( types[i] ) ) {
          return false;
        }
      }
    }
View Full Code Here

      RefreshableCollection annotation = AnnotationUtils.getAnnotation( annotatedElement,
                                                                        RefreshableCollection.class );

      if ( annotation != null ) {
        ResolvableType resolvableType = descriptor.getResolvableType();

        if ( resolvableType.hasGenerics() ) {
          resolvableType = resolvableType.getNested( 2 );
        }
        else {
          resolvableType = ResolvableType.forClass( Object.class );
        }
View Full Code Here

TOP

Related Classes of org.springframework.core.ResolvableType$DefaultVariableResolver

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.