protected Set<Resource> getResourcesAuthorized(Request request, Predicate predicate)
      throws SystemException, UnsupportedPropertyException, NoSuchResourceException, NoSuchParentResourceException {
    throw new UnsupportedOperationException("If getResources is not overwritten, then getResourcesAuthorized must be overwritten");
  }
Get a set of {@link Resource resources} based on the given request and predicate
information if the authenticated user is authorized to do so.
<p/>
This method must be overwritten if {@link #getResources(Request, Predicate)} is not overwritten.

@param request   the request object which defines the desired set of properties
@param predicate the predicate object which can be used to filter which resources are returned
@return a set of resources based on the given request and predicate information
@throws SystemException               an internal system exception occurred
@throws UnsupportedPropertyException  the request contains unsupported property ids
@throws NoSuchResourceException       the requested resource instance doesn't exist
@throws NoSuchParentResourceException a parent resource of the requested resource doesn't exist
@throws AuthorizationException        if the authenticated user is not authorized to perform this operation
@see #getResources(Request, Predicate)
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractAuthorizedResourceProvider.java