@Override String convertTo(FieldName fieldName, Case targetCase) { switch (targetCase) { case LOWER_CAMEL_CASE: return fieldName.name(); case KEBAB_CASE: return CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, fieldName.name()); case SNAKE_CASE: return CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, fieldName.name()); } throw new IllegalArgumentException("Unknown FieldName case, this is a bug: " + targetCase); } },
/** * Converts this {@link FieldName} to an upper camel case string (e.g. myVariant -> MyVariant). * Note that the resultant string is no longer a valid {@link FieldName}. */ public final String capitalize() { return StringUtils.capitalize(name()); } }
@Override String convertTo(FieldName fieldName, Case targetCase) { switch (targetCase) { case LOWER_CAMEL_CASE: return CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_CAMEL, fieldName.name()); case KEBAB_CASE: return fieldName.name(); case SNAKE_CASE: return CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_UNDERSCORE, fieldName.name()); } throw new IllegalArgumentException("Unknown FieldName case, this is a bug: " + targetCase); } },
@Override String convertTo(FieldName fieldName, Case targetCase) { switch (targetCase) { case LOWER_CAMEL_CASE: return CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, fieldName.name()); case KEBAB_CASE: return CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_HYPHEN, fieldName.name()); case SNAKE_CASE: return fieldName.name(); } throw new IllegalArgumentException("Unknown FieldName case, this is a bug: " + targetCase); } };
@Value.Check @SuppressWarnings("Slf4jLogsafeArgs") protected final void check() { Preconditions.checkArgument( Case.LOWER_CAMEL_CASE.pattern.matcher(name()).matches() || Case.KEBAB_CASE.pattern.matcher(name()).matches() || Case.SNAKE_CASE.pattern.matcher(name()).matches(), "FieldName \"%s\" must follow one of the following patterns: %s", name(), Arrays.toString(Case.values())); if (!Case.LOWER_CAMEL_CASE.pattern.matcher(name()).matches()) { log.warn("{} should be specified in lowerCamelCase. kebab-case and snake_case are supported for " + "legacy endpoints only: {}", FieldName.class, name()); } }
private static FieldName parseFieldName(com.palantir.conjure.parser.types.names.FieldName parserFieldName) { FieldName fieldName = FieldName.of(parserFieldName.name()); FieldNameValidator.validate(fieldName); return fieldName; }