code: def _ref_prop_matches(prop, target_classname, ref_classname,
                            resultclass_names, role):
          
          assert prop.type == 'reference'
          if prop.reference_class.lower() == target_classname.lower():
              if resultclass_names and ref_classname not in resultclass_names:
                  return False
              if role and prop.name.lower() != role:
                  return False
              return True
          return False
docs: Test filters for a reference property
          Returns `True` if matches the criteria.
  
          Returns `False` if it does not match.
  
          The match criteria are:
            - target_classname == prop_reference_class
            - if result_classes are not None, ref_classname is in result_classes
            - If role is not None, prop name matches role