private void resolveSuperclassFieldDependencies ( final Object reference , final Class < ? > clazz ) { if ( clazz . equals ( Object . class ) ) { return ; } final Class < ? > superclass = clazz . getSuperclass ( ) ; resolveSuperclassFieldDependencies ( reference , superclass ) ; if ( Modifier . isAbstract ( clazz . getModifiers ( ) ) || Modifier . isInterface ( clazz . getModifiers ( ) ) ) { return ; } final Bean < ? > bean = beanManager . getBean ( clazz ) ; final Set < FieldInjectionPoint > injectionPoints = bean . fieldInjectionPoints ; for ( final FieldInjectionPoint injectionPoint : injectionPoints ) { final Object injection = beanManager . getInjectableReference ( injectionPoint ) ; final Field field = injectionPoint . getAnnotated ( ) . getJavaMember ( ) ; try { final Field declaredField = proxyClass . getDeclaredField ( field . getName ( ) ) ; if ( ! Reflections . matchInheritance ( declaredField , field ) ) { // Hide try { field . set ( reference , injection ) ; } catch ( final Exception e ) { throw new RuntimeException ( e ) ; } } } catch ( final NoSuchFieldException ex ) { throw new RuntimeException ( ex ) ; } } }
Resolves super class field dependencies for the specified reference .