code: public static boolean nodeMatchesStep(Step s,
  				  String uri,
  				  String localName,
  				  String qName,
  				  Attributes a) {
  	// if the name doesn't match, then we've got a loser
  	if (!s.isMatchingName(uri, localName))
  	    return false;
  
  	// it's still in the game; check the predicates
  	List l = s.getPredicates();
  	for (int i = 0; l != null && i < l.size(); i++) {
  	    Predicate p = (Predicate) l.get(i);
  	    if (!(p instanceof AttributePredicate))
  		throw new UnsupportedOperationException
  		    ("only attribute predicates are supported by filter");
  	    if (!((AttributePredicate) p).isMatchingAttribute(a))
  		return false;		// all predicates must match
  	}
  
  	// it's survived
  	return true;
      }
docs: Private utility methods