@Override public void handle(TypeLiteral<?> type, Object instance, Method method, PreDestroy annotation) { if (!Modifier.isStatic(method.getModifiers())) { MethodInvoker.on(method).invoke(instance); } } }
@Override public void handle(TypeLiteral<?> type, Object instance, Method method, PreDestroy annotation) { if (!Modifier.isStatic(method.getModifiers())) { MethodInvoker.on(method).invoke(instance); } } }
@Override public void handle(TypeLiteral<?> type, Object instance, Method method, PostConstruct annotation) { if (!Modifier.isStatic(method.getModifiers())) { List<Key<?>> parameterKeys = Reflect.getParameterKeys(type, method); Object[] parameters = new Object[parameterKeys.size()]; for (int i = 0; i < parameters.length; i++) parameters[i] = injector.get().getProvider(parameterKeys.get(i)).get(); MethodInvoker.on(method).invoke(instance, parameters); } }
@Override public void handle(TypeLiteral<?> type, Object instance, Method method, PostConstruct annotation) { if (!Modifier.isStatic(method.getModifiers())) { List<Key<?>> parameterKeys = Reflect.getParameterKeys(type, method); Object[] parameters = new Object[parameterKeys.size()]; for (int i = 0; i < parameters.length; i++) parameters[i] = injector.get().getProvider(parameterKeys.get(i)).get(); MethodInvoker.on(method).invoke(instance, parameters); } }
@Override public T get(Injector injector) { Object factory = Modifier.isStatic(method.getModifiers()) ? null : injector.getInstance(factoryKey); try { return providedType.cast(MethodInvoker.on(method).invoke(factory, getParameterValues(injector))); } catch (Exception e) { throw MycilaGuiceException.toRuntime(e); } } }
@Override public T get(Injector injector) { Object factory = Modifier.isStatic(method.getModifiers()) ? null : injector.getInstance(factoryKey); try { return providedType.cast(MethodInvoker.on(method).invoke(factory, getParameterValues(injector))); } 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); } } } });
@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 T get(Injector injector) { T target = instance.get(injector); try { MethodInvoker.on(method).invoke(target, getParameterValues(injector)); return target; } catch (Exception e) { throw MycilaGuiceException.toRuntime(e); } } }
@Override public T get(Injector injector) { T target = instance.get(injector); try { MethodInvoker.on(method).invoke(target, getParameterValues(injector)); return target; } catch (Exception e) { throw MycilaGuiceException.toRuntime(e); } } }