docs: @Override
      public RoleDescriptor getRole(String entityID, QName roleName, String supportedProtocol)
          throws MetadataProviderException {
          RoleDescriptor roleDescriptor = null;
          for (MetadataProvider provider : getProviders()) {
              log.debug("Checking child metadata provider for entity descriptor with entity ID: {}", entityID);
              try {
                  roleDescriptor = provider.getRole(entityID, roleName, supportedProtocol);
                  if (roleDescriptor != null) {
                      break;
                  }
              } catch (MetadataProviderException e) {
                  log.warn("Error retrieving metadata from provider of type {}, proceeding to next provider",
                           provider.getClass().getName(), e);
                  continue;
              }
          }
          return roleDescriptor;
      }