protected < T > T processInjectionPoint ( final Member injectionTarget , final Class < T > injectionType , final GrpcClient annotation ) { final List < ClientInterceptor > interceptors = interceptorsFromAnnotation ( annotation ) ; final String name = annotation . value ( ) ; final Channel channel ; try { channel = getChannelFactory ( ) . createChannel ( name , interceptors ) ; if ( channel == null ) { throw new IllegalStateException ( "Channel factory created a null channel for " + name ) ; } } catch ( final RuntimeException e ) { throw new IllegalStateException ( "Failed to create channel: " + name , e ) ; } final T value = valueForMember ( name , injectionTarget , injectionType , channel ) ; if ( value == null ) { throw new IllegalStateException ( "Injection value is null unexpectedly for " + name + " at " + injectionTarget ) ; } return value ; }
Processes the given injection point and computes the appropriate value for the injection .