private boolean providesRequestProperties(PropertyProvider provider, Request request, Predicate predicate) {
    Set<String> requestPropertyIds = new HashSet<>(request.getPropertyIds());

    if (requestPropertyIds.size() == 0) {
      return true;
    }
    requestPropertyIds.addAll(PredicateHelper.getPropertyIds(predicate));

    int size = requestPropertyIds.size();

    return size > provider.checkPropertyIds(requestPropertyIds).size();
  }
Indicates whether or not the given property provider can service the given request.

@param provider   the property provider
@param request    the request
@param predicate  the predicate

@return true if the given provider can service the request
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterControllerImpl.java