private boolean isMemberRefMatch(@Nullable String owner, @Nullable String name, @Nullable String desc) {
		if (classRefOnly) return false;

		// The parameters are null if we only are searching against a type.
		// In these cases since we're comparing to a type, then any name/desc comparison should be ignored.
		if (name == null && namePredicate != null) return false;
		if (desc == null && descriptorPredicate != null) return false;

		// Check if match modes succeed.
		// If our query predicates are null, that field can skip comparison, and we move on to the next.
		// If all of our non-null query arguments match the given parameters, we have a match.
		if (ownerPredicate == null || StringUtil.isNullOrEmpty(owner) || ownerPredicate.match(owner))
			if (namePredicate == null || StringUtil.isNullOrEmpty(name) || namePredicate.match(name))
				return descriptorPredicate == null || StringUtil.isNullOrEmpty(desc) || descriptorPredicate.match(desc);

		return false;
	}
Member reference query.
<p/>
Do note that each target value is nullable/optional.
Including only the owner and {@code null} for the name/desc will yield references to all members in the class.
Including only the desc will yield references to all members of that desc in all classes.

@param ownerPredicate
		String matching predicate for comparison against reference owners.
       {@code null} to ignore matching against reference owner names.
@param namePredicate
		String matching predicate for comparison against reference names.
       {@code null} to ignore matching against reference names.
@param descriptorPredicate
		String matching predicate for comparison against reference descriptors.
       {@code null} to ignore matching against reference descriptors.
recaf-core/src/main/java/software/coley/recaf/services/search/query/ReferenceQuery.java