public static String buildName(final Class<?> clazz, final List<String> nameParts) {
        if (NullSafe.hasItems(nameParts)) {
            final String[] namePartsArr = NullSafe.stream(nameParts)
                    .toArray(String[]::new);
            return buildName(clazz, namePartsArr);
        } else {
            return MetricRegistry.name(Objects.requireNonNull(clazz), (String[]) null);
        }
    }
Build a metric name from the owning class and 0-many name parts.
Each part will have unsuitable characters stripped and be separated
by a '.' character. Name parts will be appended onto the fully qualified class name.

@param clazz
@param nameParts
@return The metric name
stroom-util/src/main/java/stroom/util/metrics/MetricsUtil.java