def validate()

in qpid/validator.py [0:0]


  def validate(self, o, ctx):
    errors = []

    if not hasattr(o, "get"):
      return "%s is not a map" % o

    ctx.push(o)
    for k, t in self.map.items():
      v = o.get(k)
      if v is not None:
        err = t.validate(v, ctx)
        if err: errors.append("%s: %s" % (k, err))
    if self.restricted:
      for k in o:
        if not k in self.map:
          errors.append("%s: illegal key" % k)
    ctx.pop()

    if errors:
      return ", ".join(errors)