class WorkflowResourceProvider extends
    AbstractJDBCResourceProvider<WorkflowResourceProvider.WorkflowFields> {

  @Override
  public Set<Resource> getResources(Request request, Predicate predicate)
      throws SystemException, UnsupportedPropertyException,
      NoSuchResourceException, NoSuchParentResourceException {

    Set<Resource> resourceSet = new HashSet<>();
    Set<String> requestedIds = getRequestPropertyIds(request, predicate);

    Set<Map<String,Object>> predicatePropertieSet = getPropertyMaps(predicate);
    for (Map<String,Object> predicateProperties : predicatePropertieSet) {
      String clusterName = (String) predicateProperties
          .get(WORKFLOW_CLUSTER_NAME_PROPERTY_ID);
      String workflowId = (String) predicateProperties
          .get(WORKFLOW_ID_PROPERTY_ID);
      resourceSet.addAll(workflowFetcher.fetchWorkflows(requestedIds,
          clusterName, workflowId));
    }
    return resourceSet;
  }

  protected  WorkflowResourceProvider();
  protected  WorkflowResourceProvider(WorkflowFetcher workflowFetcher);

}