private void invokeDestroy(Object theProvider) { invokeDestroy(theProvider, theProvider.getClass()); }
private void invokeDestroy(Object theProvider, Class<?> clazz) { for (Method m : ReflectionUtil.getDeclaredMethods(clazz)) { Destroy destroy = m.getAnnotation(Destroy.class); if (destroy != null) { invokeInitializeOrDestroyMethod(theProvider, m, "destroy"); } } Class<?> supertype = clazz.getSuperclass(); if (!Object.class.equals(supertype)) { invokeDestroy(theProvider, supertype); } }
@Override public void destroy() { if (getResourceProviders() != null) { for (IResourceProvider iResourceProvider : getResourceProviders()) { invokeDestroy(iResourceProvider); } } if (myServerConformanceProvider != null) { invokeDestroy(myServerConformanceProvider); } if (getPlainProviders() != null) { for (Object next : getPlainProviders()) { invokeDestroy(next); } } }
/** * Unregister a {@code Collection} of providers */ public void unregisterProviders(Collection<?> providers) { ProvidedResourceScanner providedResourceScanner = new ProvidedResourceScanner(getFhirContext()); if (providers != null) { for (Object provider : providers) { removeResourceMethods(provider); if (provider instanceof IResourceProvider) { myResourceProviders.remove(provider); IResourceProvider rsrcProvider = (IResourceProvider) provider; Class<? extends IBaseResource> resourceType = rsrcProvider.getResourceType(); String resourceName = getFhirContext().getResourceDefinition(resourceType).getName(); providedResourceScanner.removeProvidedResources(rsrcProvider); } else { myPlainProviders.remove(provider); } invokeDestroy(provider); } } }
private void invokeDestroy(Object theProvider) { invokeDestroy(theProvider, theProvider.getClass()); }
private void invokeDestroy(Object theProvider, Class<?> clazz) { for (Method m : ReflectionUtil.getDeclaredMethods(clazz)) { Destroy destroy = m.getAnnotation(Destroy.class); if (destroy != null) { invokeInitializeOrDestroyMethod(theProvider, m, "destroy"); } } Class<?> supertype = clazz.getSuperclass(); if (!Object.class.equals(supertype)) { invokeDestroy(theProvider, supertype); } }
@Override public void destroy() { if (getResourceProviders() != null) { for (IResourceProvider iResourceProvider : getResourceProviders()) { invokeDestroy(iResourceProvider); } } if (myServerConformanceProvider != null) { invokeDestroy(myServerConformanceProvider); } if (getPlainProviders() != null) { for (Object next : getPlainProviders()) { invokeDestroy(next); } } }
/** * Unregister a {@code Collection} of providers */ public void unregisterProviders(Collection<?> providers) { ProvidedResourceScanner providedResourceScanner = new ProvidedResourceScanner(getFhirContext()); if (providers != null) { for (Object provider : providers) { removeResourceMethods(provider); if (provider instanceof IResourceProvider) { myResourceProviders.remove(provider); IResourceProvider rsrcProvider = (IResourceProvider) provider; Class<? extends IBaseResource> resourceType = rsrcProvider.getResourceType(); String resourceName = getFhirContext().getResourceDefinition(resourceType).getName(); providedResourceScanner.removeProvidedResources(rsrcProvider); } else { myPlainProviders.remove(provider); } invokeDestroy(provider); } } }