package org.javaee7.jaxrs.paramconverter; import java.lang.annotation.Annotation; import java.lang.reflect.Type; import javax.ws.rs.ext.ParamConverter; import javax.ws.rs.ext.ParamConverterProvider; import javax.ws.rs.ext.Provider; /** * @author Xavier Coulon */ @Provider public class MyBeanConverterProvider implements ParamConverterProvider { @Override public <T> ParamConverter<T> getConverter(Class<T> clazz, Type type, Annotation[] annotations) { if (clazz.getName().equals(MyBean.class.getName())) { return new ParamConverter<T>() { @SuppressWarnings("unchecked") @Override public T fromString(String value) { MyBean bean = new MyBean(); bean.setValue(value); return (T) bean; } @Override public String toString(T bean) { return ((MyBean) bean).getValue(); } }; } return null; } }