@SuppressWarnings("unchecked") public static void injectConstructorProxies(Object o, AbstractResourceInfo cri, Message m) { Map<Class<?>, ThreadLocalProxy<?>> proxies = cri.getConstructorProxies(); if (proxies != null) { for (Map.Entry<Class<?>, ThreadLocalProxy<?>> entry : proxies.entrySet()) { Object value = JAXRSUtils.createContextValue(m, entry.getKey(), entry.getKey()); ((ThreadLocalProxy<Object>)entry.getValue()).set(value); } } }
@SuppressWarnings("unchecked") public static void injectContextField(AbstractResourceInfo cri, Field f, Object o, Object value) { if (!cri.isSingleton()) { InjectionUtils.injectFieldValue(f, o, value); } else { ThreadLocalProxy<Object> proxy = (ThreadLocalProxy<Object>)cri.getContextFieldProxy(f); if (proxy != null) { proxy.set(value); } } }
@SuppressWarnings("unchecked") public static void injectContextMethods(Object requestObject, AbstractResourceInfo cri, Message message) { for (Map.Entry<Class<?>, Method> entry : cri.getContextMethods().entrySet()) { Method method = entry.getValue(); if (VALUE_CONTEXTS.contains(method.getParameterTypes()[0].getName()) && cri.isSingleton()) { continue; } Object o = JAXRSUtils.createContextValue(message, method.getGenericParameterTypes()[0], entry.getKey()); if (o != null) { if (!cri.isSingleton()) { InjectionUtils.injectThroughMethod(requestObject, method, o, message); } else { ThreadLocalProxy<Object> proxy = (ThreadLocalProxy<Object>)cri.getContextSetterProxy(method); if (proxy != null) { proxy.set(o); } } } } }
@SuppressWarnings("unchecked") public static void injectContextField(AbstractResourceInfo cri, Field f, Object o, Object value) { if (!cri.isSingleton()) { InjectionUtils.injectFieldValue(f, o, value); } else { ThreadLocalProxy<Object> proxy = (ThreadLocalProxy<Object>)cri.getContextFieldProxy(f); if (proxy != null) { proxy.set(value); } } }
@SuppressWarnings("unchecked") public static void injectContextMethods(Object requestObject, AbstractResourceInfo cri, Message message) { for (Map.Entry<Class<?>, Method> entry : cri.getContextMethods().entrySet()) { Method method = entry.getValue(); if (method.getParameterTypes()[0] == Application.class && cri.isSingleton()) { continue; } Object o = JAXRSUtils.createContextValue(message, method.getGenericParameterTypes()[0], entry.getKey()); if (o != null) { if (!cri.isSingleton()) { InjectionUtils.injectThroughMethod(requestObject, method, o, message); } else { ThreadLocalProxy<Object> proxy = (ThreadLocalProxy<Object>)cri.getContextSetterProxy(method); if (proxy != null) { proxy.set(o); } } } } }