private boolean applyFilter(Node node, String filter, String set, String filterField) {
   boolean passed = (nullOrEmpty(filter));
   if (!passed) {
     for (NodeHolder group : new NodeHolder(node).getSub(set).getSubNodes("item")) {
       NodeHolder nh = group.getSub(filterField);
       if (nh != null
           && nh.getNode().getFirstChild() != null
           && filter.equals(nh.getNode().getFirstChild().getNodeValue())) {
         passed = true;
       }
     }
   }
   return passed;
 }
 private boolean keyEquals(String keyExpected, NodeHolder group) {
   NodeHolder nhKey = group.getSub("key");
   return nhKey != null
       && nhKey.getNode().getFirstChild() != null
       && keyExpected.equals(nhKey.getNode().getFirstChild().getNodeValue());
 }
 private boolean valueEquals(String valueExpected, NodeHolder group) {
   NodeHolder nhValue = group.getSub("value");
   return nhValue != null
       && nhValue.getNode().getFirstChild() != null
       && valueExpected.equals(nhValue.getNode().getFirstChild().getNodeValue());
 }