protected Set<Map<String, Object>> getPropertyMaps(Predicate givenPredicate) {

    SimplifyingPredicateVisitor visitor = new SimplifyingPredicateVisitor(this);
    PredicateHelper.visit(givenPredicate, visitor);
    List<Predicate> predicates = visitor.getSimplifiedPredicates();

    Set<Map<String, Object>> propertyMaps = new HashSet<>();

    for (Predicate predicate : predicates) {
      propertyMaps.add(PredicateHelper.getProperties(predicate));
    }
    return propertyMaps;
  }
Get a set of properties from the given predicate.  The returned set of
property/value mappings is required to generate delete or get requests
to the back end which does not deal with predicates.  Note that the
single predicate can result in multiple backend requests.

@param givenPredicate           the predicate

@return the set of properties used to build request objects
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractResourceProvider.java