Parse one or more objects by testing if it has matching stat results.

    Args:
      objs: An iterable of objects that should be checked.
      expression: A StatFilter expression, e.g.:
        "uid:>0 gid:=0 file_type:link"

    Yields:
      matching objects.

def ParseObjs(self, objs, expression):
    """Parse one or more objects by testing if it has matching stat results.

    Args:
      objs: An iterable of objects that should be checked.
      expression: A StatFilter expression, e.g.:
        "uid:>0 gid:=0 file_type:link"

    Yields:
      matching objects.
    """
    self.Validate(expression)
    for obj in objs:
      if not isinstance(obj, rdf_client_fs.StatEntry):
        continue
      # If all match conditions pass, yield the object.
      for match in self.matchers:
        if not match(obj):
          break
      else:
        yield obj