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}