private static List<String> getEnumNames(Data data, Enum enumm) {
		String enumEntryName = data.getDefaultValueRepresentation();
		List<String> enumNames = new ArrayList<>(List.of(enumm.getNames()));
		if (enumNames.contains(enumEntryName)) {
			return List.of(enumEntryName);
		}

		if (!enumEntryName.contains(" | ")) {
			return Collections.emptyList();
		}

		// not a big fan of using this delimiter check, but will do so for now until there is
		// a better way, such as asking the enum to do this work for us
		String[] names = enumEntryName.split(" \\| ");
		return List.of(names);
	}
Searches defined data for types that match, according to the given predicate.

@param accumulator the results accumulator
@param program the program
@param dataMatcher the predicate that determines a successful match
@param fieldMatcher the field matcher; will be ignored if it contains null values
@param monitor the task monitor used to track progress and cancel the work
@throws CancelledException if the operation was cancelled
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/locationreferences/ReferenceUtils.java