@Override public void validate(Set<FieldName> args) { Map<FieldName, FieldName> seenNormalizedToOriginal = Maps.newHashMap(); for (FieldName argName : args) { FieldName normalizedName = FieldNameValidator.toCase(argName, CaseConverter.Case.LOWER_CAMEL_CASE); FieldName seenName = seenNormalizedToOriginal.get(normalizedName); Preconditions.checkArgument(seenName == null, "%s must not contain duplicate field names (modulo case normalization): %s vs %s", classSimpleName, argName.get(), seenName == null ? "" : seenName.get()); seenNormalizedToOriginal.put(normalizedName, argName); } }