@Override public void injectMembers(I injectee) { KeyProvider<A> keyProvider = provider.get(); // inject fields for (Field field : fields) { Object value = injectorProvider.get().getProvider(keyProvider.getKey(injectableType, field, field.getAnnotation(annotationType))).get(); if (!field.isAccessible()) field.setAccessible(true); try { field.set(injectee, value); } catch (IllegalAccessException e) { throw new IllegalStateException("Failed to inject field " + field + ". Reason: " + e.getMessage(), e); } } // inject methods for (MethodInvoker invokable : methods) { List<Key<?>> parameterKeys = keyProvider.getParameterKeys(injectableType, invokable.method, invokable.getAnnotation(annotationType)); Object[] parameters = new Object[parameterKeys.size()]; for (int i = 0; i < parameters.length; i++) parameters[i] = injectorProvider.get().getProvider(parameterKeys.get(i)).get(); try { invokable.invoke(injectee, parameters); } catch (Exception e) { throw MycilaGuiceException.toRuntime(e); } } } });
@Override public void injectMembers(I injectee) { KeyProvider<A> keyProvider = provider.get(); // inject fields for (Field field : fields) { Object value = injectorProvider.get().getProvider(keyProvider.getKey(injectableType, field, field.getAnnotation(annotationType))).get(); if (!field.isAccessible()) field.setAccessible(true); try { field.set(injectee, value); } catch (IllegalAccessException e) { throw new IllegalStateException("Failed to inject field " + field + ". Reason: " + e.getMessage(), e); } } // inject methods for (MethodInvoker invokable : methods) { List<Key<?>> parameterKeys = keyProvider.getParameterKeys(injectableType, invokable.method, invokable.getAnnotation(annotationType)); Object[] parameters = new Object[parameterKeys.size()]; for (int i = 0; i < parameters.length; i++) parameters[i] = injectorProvider.get().getProvider(parameterKeys.get(i)).get(); try { invokable.invoke(injectee, parameters); } catch (Exception e) { throw MycilaGuiceException.toRuntime(e); } } } });
@Override public void injectMembers(I injectee) { KeyProvider<A> keyProvider = provider.get(); // inject fields for (Field field : fields) { Object value = injectorProvider.get().getProvider(keyProvider.getKey(injectableType, field, field.getAnnotation(annotationType))).get(); if (!field.isAccessible()) field.setAccessible(true); try { field.set(injectee, value); } catch (IllegalAccessException e) { throw new IllegalStateException("Failed to inject field " + field + ". Reason: " + e.getMessage(), e); } } // inject methods for (MethodInvoker invokable : methods) { List<Key<?>> parameterKeys = keyProvider.getParameterKeys(injectableType, invokable.method, invokable.getAnnotation(annotationType)); Object[] parameters = new Object[parameterKeys.size()]; for (int i = 0; i < parameters.length; i++) parameters[i] = injectorProvider.get().getProvider(parameterKeys.get(i)).get(); try { invokable.invoke(injectee, parameters); } catch (Exception e) { throw MycilaGuiceException.toRuntime(e); } } } });