package humanize.faces.convert;
import humanize.Humanize;
import humanize.util.Constants.TimeStyle;
import java.util.Iterator;
import java.util.List;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.FacesConverter;
@FacesConverter(value = "humanize.Duration")
public class DurationConverter extends NumberConverter
{
private static final long serialVersionUID = -6598199651948023319L;
private String style;
@Override
public String getAsString(FacesContext context, UIComponent component, Object value)
{
return Humanize.duration(asNumber(value), getTimeStyle(), getLocale(context));
}
public String getStyle()
{
return style;
}
public void setStyle(String style)
{
clearInitialState();
this.style = style;
}
@Override
protected void restore(Iterator<Object> iterator)
{
this.style = (String) iterator.next();
}
@Override
protected void save(List<Object> states)
{
states.add(style);
}
private TimeStyle getTimeStyle()
{
return style == null ? TimeStyle.STANDARD : TimeStyle.valueOf(style.toUpperCase());
}
}