Skip to content

Instantly share code, notes, and snippets.

@rinaldodev
Created November 11, 2020 00:51
Show Gist options
  • Save rinaldodev/e08cd1ae189209a2bf697c8cdc664eda to your computer and use it in GitHub Desktop.
Save rinaldodev/e08cd1ae189209a2bf697c8cdc664eda to your computer and use it in GitHub Desktop.
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.time.LocalDate;
import javax.ws.rs.ext.ParamConverter;
import javax.ws.rs.ext.ParamConverterProvider;
import javax.ws.rs.ext.Provider;
@Provider
public class LocalDateParamConverterProvider implements ParamConverterProvider {
@SuppressWarnings("unchecked")
@Override
public <T> ParamConverter<T> getConverter(Class<T> rawType, Type genericType, Annotation[] annotations) {
if (rawType.isAssignableFrom(LocalDate.class)) {
return (ParamConverter<T>) new LocalDateParamConverter();
}
return null;
}
public static class LocalDateParamConverter implements ParamConverter<LocalDate> {
public static final String DATE_PATTERN = "yyyyMMdd";
@Override
public LocalDate fromString(String param) {
return LocalDate.parse(param);
}
@Override
public String toString(LocalDate date) {
return date.toString();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment