private boolean isMemberRefMatch(@Nonnull String owner, @Nonnull String name, @Nonnull String desc) {
		// 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 declaration query.
<p/>
Do note that each target value is nullable/optional.
Including only the owner and {@code null} for the name/desc will yield declarations to all members in the class.
Including only the desc will yield declarations of all members with that desc in all classes.

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