001package org.nuxeo.project.sample;
002
003import javax.faces.application.FacesMessage;
004import javax.faces.component.UIComponent;
005import javax.faces.context.FacesContext;
006import javax.faces.convert.Converter;
007import javax.faces.convert.ConverterException;
008
009public class BookIntegerConverter implements Converter {
010
011    public Object getAsObject(FacesContext context, UIComponent component, String value) {
012        Integer result;
013        if (value.trim().length() == 0) {
014            result = Integer.valueOf(0);
015        } else {
016            try {
017                result = Integer.valueOf(Integer.parseInt(value));
018            } catch (NumberFormatException e) {
019                FacesMessage message = new FacesMessage();
020                message.setDetail("The value must be an integer");
021                message.setSummary("Not an integer");
022                message.setSeverity(FacesMessage.SEVERITY_ERROR);
023                throw new ConverterException(message);
024            }
025        }
026        return result;
027    }
028
029    public String getAsString(FacesContext context, UIComponent component, Object value) {
030        int v = ((Integer) value).intValue();
031        if (v == 0) {
032            return "";
033        } else {
034            return Integer.toString(v);
035        }
036    }
037
038}