/** * Called from {@link #registerEntityProvider(EntityProvider)} when registering a provider */ @SuppressWarnings("unchecked") private void callListener(EntityProviderListener providerListener, EntityProvider entityProvider) { // get the filter values String prefix = providerListener.getPrefixFilter(); Class<? extends EntityProvider> capability = providerListener.getCapabilityFilter(); // call the listener and give it the provider if (capability == null && prefix == null) { // any providerListener.run(entityProvider); } else if (capability == null) { // by prefix only if (prefix.equals(entityProvider.getEntityPrefix())) { providerListener.run(entityProvider); } } else if (prefix == null) { // by capability only if (capability.isAssignableFrom(entityProvider.getClass())) { providerListener.run(entityProvider); } } else { // by prefix and capability only if (prefix.equals(entityProvider.getEntityPrefix()) && capability.isAssignableFrom(entityProvider.getClass())) { providerListener.run(entityProvider); } } }
String prefix = listener.getPrefixFilter(); Class<T> capability = listener.getCapabilityFilter();