public void injectField(Field f, Object target) { try { f.setAccessible(true); f.set(target, event.getEvent()); } catch (Throwable e) { logger.log(Logger.LOG_ERROR, "Could not set field " + f + " in class " + target.getClass().getName(), e); } }
@SuppressWarnings("unchecked") public void injectIterableField(Field f, Object target) { if (update) { return; } f.setAccessible(true); try { Collection<Object> coll = (Collection<Object>) f.get(target); if (add) { coll.add(event.getEvent()); } else { coll.remove(event.getEvent()); } } catch (Throwable e) { logger.log(Logger.LOG_ERROR, "Could not set field " + f + " in class " + target.getClass().getName(), e); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) @Override public void injectMapField(Field f, Object target) { f.setAccessible(true); try { Map<Object, Dictionary<?, ?>> map = (Map) f.get(target); if (add || update) { map.put(event.getEvent(), event.getProperties()); } else { map.remove(event.getEvent()); } } catch (Throwable e) { logger.log(Logger.LOG_ERROR, "Could not set field " + f + " in class " + target.getClass().getName(), e); } } });
public void injectField(Field f, Object target) { try { f.setAccessible(true); f.set(target, dc.getService().getEvent()); } catch (Throwable e) { logger.log(Logger.LOG_ERROR, "Could not set field " + f + " in class " + target.getClass().getName(), e); } }
/** * Copy all dependency service instances to the given collection. */ @Override public void copyToCollection(Collection<Object> services) { Set<Event> events = m_component.getDependencyEvents(this); if (events.size() > 0) { for (Event e : events) { services.add(e.getEvent()); } } else { Object defaultService = getDefaultService(false); if (defaultService != null) { services.add(defaultService); } } }
/** * Copy all dependency service instances to the given map (key = dependency service, value = dependency service properties. */ @Override public void copyToMap(Map<Object, Dictionary<?, ?>> map) { Set<Event> events = m_component.getDependencyEvents(this); if (events.size() > 0) { for (Event e : events) { map.put(e.getEvent(), e.getProperties()); } } else { Object defaultService = getDefaultService(false); if (defaultService != null) { map.put(defaultService, EMPTY_PROPERTIES); } } }
@SuppressWarnings("unchecked") @Override public Dictionary<String, Object> getProperties() { Event event = getService(); if (event != null) { Bundle bundle = (Bundle) event.getEvent(); if (m_propagateCallbackInstance != null && m_propagateCallbackMethod != null) { try { CallbackTypeDef callbackInfo = new CallbackTypeDef(Bundle.class, bundle); return (Dictionary<String, Object>) InvocationUtil.invokeCallbackMethod(m_propagateCallbackInstance, m_propagateCallbackMethod, callbackInfo.m_sigs, callbackInfo.m_args); } catch (InvocationTargetException e) { m_component.getLogger().warn("Exception while invoking callback method", e.getCause()); } catch (Throwable e) { m_component.getLogger().warn("Exception while trying to invoke callback method", e); } throw new IllegalStateException("Could not invoke callback"); } else { return ServiceUtil.toR6Dictionary(bundle.getHeaders()); } } else { throw new IllegalStateException("cannot find bundle"); } }