@Override public boolean hasService(Class<?> clazz) { synchronized (services) { for (Object service : services.values()) { if (service instanceof Factory) { if (clazz.isAssignableFrom(((Factory<?>) service).clazz)) { if (isVisible(service)) { return true; } } } else if (clazz.isInstance(service)) { if (isVisible(service)) { return true; } } } } if (parent != null) { return parent.hasService(clazz); } return false; }
@Override public boolean hasService(Class<?> clazz) { synchronized (services) { for (Object service : services.values()) { if (service instanceof Factory) { if (clazz.isAssignableFrom(((Factory<?>) service).clazz)) { if (isVisible(service)) { return true; } } } else if (clazz.isInstance(service)) { if (isVisible(service)) { return true; } } } } if (parent != null) { return parent.hasService(clazz); } return false; }
@Override public boolean hasService(Class<?> clazz) { synchronized (services) { for (Object service : services.values()) { if (service instanceof Factory) { if (clazz.isAssignableFrom(((Factory<?>) service).clazz)) { if (isVisible(service)) { return true; } } } else if (clazz.isInstance(service)) { if (isVisible(service)) { return true; } } } } if (parent != null) { return parent.hasService(clazz); } return false; }
@Override public boolean hasService(Class<?> clazz) { synchronized (services) { for (Object service : services.values()) { if (service instanceof Factory) { if (clazz.isAssignableFrom(((Factory<?>) service).clazz)) { if (isVisible(service)) { return true; } } } else if (clazz.isInstance(service)) { if (isVisible(service)) { return true; } } } } if (parent != null) { return parent.hasService(clazz); } return false; }
private void inspectClass(final Class<?> clazz) throws Exception { Service reg = clazz.getAnnotation(Service.class); if (reg == null) { return; } // Create trackers for (Class<?> cl = clazz; cl != Object.class; cl = cl.getSuperclass()) { for (Field field : cl.getDeclaredFields()) { Reference ref = field.getAnnotation(Reference.class); if (ref != null) { GenericType type = new GenericType(field.getGenericType()); Class clazzRef = type.getRawClass() == List.class ? type.getActualTypeArgument(0).getRawClass() : type.getRawClass(); if (clazzRef != BundleContext.class && clazzRef != Session.class && clazzRef != Terminal.class && clazzRef != History.class && clazzRef != Registry.class && clazzRef != SessionFactory.class && !registry.hasService(clazzRef)) { track(type, ref.optional()); } } } } classes.add(clazz); }
private void inspectClass(final Class<?> clazz) throws Exception { Service reg = clazz.getAnnotation(Service.class); if (reg == null) { return; } // Create trackers for (Class<?> cl = clazz; cl != Object.class; cl = cl.getSuperclass()) { for (Field field : cl.getDeclaredFields()) { Reference ref = field.getAnnotation(Reference.class); if (ref != null) { GenericType type = new GenericType(field.getGenericType()); Class clazzRef = type.getRawClass() == List.class ? type.getActualTypeArgument(0).getRawClass() : type.getRawClass(); if (clazzRef != BundleContext.class && clazzRef != Session.class && clazzRef != Terminal.class && clazzRef != History.class && clazzRef != Registry.class && clazzRef != SessionFactory.class && !registry.hasService(clazzRef)) { track(type, ref.optional()); } } } } classes.add(clazz); }