@Override
	public void readConfigState(SaveState saveState) {
		String[] values = saveState.getStrings(getStateKey(), null);
		if (values == null) {
			return; // nothing to restore
		}

		Map<String, CheckBoxInfo<T>> nameToInfoMap = createNameToInfoMap();
		for (String value : values) {
			String[] nameAndState = value.split(":");
			String name = nameAndState[0];
			CheckBoxInfo<T> info = nameToInfoMap.get(name);
			if (info == null) {
				continue; // no longer exists?
			}

			String state = nameAndState[1];
			JCheckBox checkBox = info.getCheckBox();
			checkBox.setSelected(Boolean.parseBoolean(state));
		}
	}
A basic class to extract out code I was repeating over and over again.  This class creates
a component that contains series of check boxes and can answer questions about filtering.

@param <T> the type of item being filtered
Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/filters/CheckBoxBasedAncillaryFilter.java