package org.jboss.seam.example.restbay.resteasy.provider; import org.jboss.resteasy.spi.StringConverter; import javax.ws.rs.ext.Provider; import java.util.GregorianCalendar; import java.text.SimpleDateFormat; import java.text.ParseException; /** * Converts QueryParam etc. strings to GregorianCalendar if they are in ISO date format * * @author Christian Bauer */ @Provider public class PlainResteasyStringConverterProvider implements StringConverter<GregorianCalendar> { public static final String ISO_FORMAT = "yyyy-MM-dd'T'HH:mm:ssZ"; public GregorianCalendar fromString(String s) { SimpleDateFormat sdf = new SimpleDateFormat(ISO_FORMAT); GregorianCalendar cal = new GregorianCalendar(); try { cal.setTime(sdf.parse(s)); } catch (ParseException e) { throw new RuntimeException(e); } return cal; } // TODO: RESTEasy doesn't seem to use that at all public String toString(GregorianCalendar gregorianCalendar) { SimpleDateFormat sdf = new SimpleDateFormat(ISO_FORMAT); return sdf.format(gregorianCalendar.getTime()); } }