public List<String> getCategory(String type) {
		if (usercat == null) {
			return null;
		}
		List<String> res = new ArrayList<String>();
		int min = 0;
		int max = usercat.size() - 1;
		while (min <= max) {
			int mid = (min + max) / 2;
			String curtype = usercat.get(mid).getType();
			int cmp = type.compareTo(curtype);
			if (cmp <= 0) {
				max = mid - 1;
			}
			else {
				min = mid + 1;
			}
		}

		while (min < usercat.size()) {
			CategoryRecord currec = usercat.get(min);
			if (!type.equals(currec.getType())) {
				break;
			}
			min += 1;
			res.add(currec.getCategory());
		}
		return res;
	}
Return the executable's settings for a specific category type
@param type is the category type
@return the list of settings with this type (or null)
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/description/ExecutableRecord.java