package com.linkedin.restli.examples.custom.types;
import com.linkedin.data.template.Custom;
import com.linkedin.data.template.DirectCoercer;
import com.linkedin.data.template.TemplateOutputCastException;
import java.util.Calendar;
/**
* Test class for custom coercing
*
* @author Soojung Ha
*/
@SuppressWarnings("rawtypes")
public class CalendarCoercer implements DirectCoercer<Calendar>
{
private static final Object REGISTER_COERCER = Custom.registerCoercer(new CalendarCoercer(), Calendar.class);
@Override
public Integer coerceInput(Calendar object) throws ClassCastException
{
return object.get(Calendar.YEAR);
}
@Override
public Calendar coerceOutput(Object object) throws TemplateOutputCastException
{
if (object instanceof Integer)
{
return Calendar.getInstance();
}
throw new TemplateOutputCastException("Output " + object + " is not an int, and cannot be coerced to " + Calendar.class.getName());
}
}