class ClusterControllerImpl implements ClusterController {

  @Override
  public RequestStatus updateResources(Type type, Request request, Predicate predicate)
      throws UnsupportedPropertyException,
             SystemException,
             NoSuchResourceException,
             NoSuchParentResourceException {

    ResourceProvider provider = ensureResourceProvider(type);
    if (provider != null) {

      if (!checkProperties(type, request, predicate)) {
        predicate = resolvePredicate(type, predicate);
        if (predicate == null) {
          return null;
        }
      }
      return provider.updateResources(request, predicate);
    }
    return null;
  }

  public  ClusterControllerImpl(ProviderModule providerModule);

}