public boolean hasCategory(String type, String value) {
		if (usercat == null) {
			return false;
		}
		int min = 0;
		int max = usercat.size() - 1;
		while (min <= max) {
			int mid = (min + max) / 2;
			CategoryRecord catrec = usercat.get(mid);
			if (catrec == null) {
				Msg.error(this, "No entry in category list found for index: " + mid +
					" (list size = " + usercat.size() + ")");
				return false;
			}
			String curtype = catrec.getType();
			int cmp = type.compareTo(curtype);
			if (cmp == 0) {
				final int subcmp = value.compareTo(catrec.getCategory());
				if (subcmp < 0) {
					max = mid - 1;
				}
				else if (subcmp > 0) {
					min = mid + 1;
				}
				else {
					return true; // Found match of type and value
				}
			}
			else if (cmp < 0) {
				max = mid - 1;
			}
			else {
				min = mid + 1;
			}
		}

		return false;
	}
Determine if an executable has been set with a specific category value
@param type is the type of category to check
@param value is the value to check for
@return true if the executable has that value, false otherwise
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/description/ExecutableRecord.java