private void populateFilterMaps() {
		// First set up maps to organize which filters should be AND'd together and 
		// which ones should be OR'd.
		filterNameToFilterMapAND = new HashMap<>();
		filterNameToFilterMapOR = new HashMap<>();

		for (FilterAtom atom : atoms) {

			// The name of the filter will be the map key (ie: "executable name equals"),
			// so grab it here.
			String name = atom.type.getLabel();

			BSimFilterType filter = atom.type;

			if (filter.orMultipleEntries()) {
				if (!filterNameToFilterMapOR.containsKey(name)) {
					List<FilterAtom> list = new ArrayList<FilterAtom>();
					list.add(atom);
					filterNameToFilterMapOR.put(name, list);
				}
				else {
					filterNameToFilterMapOR.get(name).add(atom);
				}
			}
			else {
				if (!filterNameToFilterMapAND.containsKey(name)) {
					List<FilterAtom> list = new ArrayList<FilterAtom>();
					list.add(atom);
					filterNameToFilterMapAND.put(name, list);
				}
				else {
					filterNameToFilterMapAND.get(name).add(atom);
				}
			}
		}
	}
Sets up the filterNameToFilter... maps with the appropriate category/filter values. This is done to
keep all the filters of the same type in the same place.

ie: 	If one of the filters set is the "Executable name does not equal" filter, and gives it
		two values: "dexdump" and "stty", then the "filterNameToFilterMapOR" map will 
		have the following:
			key: 	"Executable name does not equal"
			value: 	[dexdump, stty]
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/protocol/BSimFilter.java