private static String fromCamelCase(String text) {
		StringBuilder buffy = new StringBuilder();

		//@formatter:off
		text.chars()
			.mapToObj(i -> (char) i)
			.forEach(c -> {
				if (c == '_') {
					buffy.append(' ');
				}
				else if (Character.isUpperCase(c)) {
					if (buffy.length() > 1) { // no space in the front
						buffy.append(' ');
					}
					buffy.append(c);
				}
				else {
					boolean wasSpace = isLastCharASpace(buffy);
					char C = maybeToUpperCase(c, wasSpace);
					buffy.append(C);
				}

			})
			;
		//@formatter:on

		buffy.replace(0, 1, buffy.substring(0, 1).toUpperCase()); // Initial cap

		return buffy.toString();
	}
A table that allow users to provide a list of data objects whose method can be used
to create columns.

@param <T> the row object type
Ghidra/Framework/Docking/src/main/java/docking/widgets/table/AnyObjectTableModel.java