class ArtifactResourceProvider extends AbstractResourceProvider {

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

    Set<Map<String, Object>> requestProps = getPropertyMaps(predicate);
    Set<Resource> resources = new LinkedHashSet<>();

    for (Map<String, Object> props : requestProps) {
      resources.addAll(getResources(getGetCommand(request, predicate, props)));
    }

    if (resources.isEmpty() && isInstanceRequest(requestProps)) {
      throw new NoSuchResourceException(
          "The requested resource doesn't exist: Artifact not found, " + predicate);
    }
    return resources;
  }

  @Inject protected  ArtifactResourceProvider(AmbariManagementController controller);

}