001 package edu.nrao.sss.webapp.faces.converter; 002 003 import javax.faces.convert.Converter; 004 import javax.faces.convert.ConverterException; 005 import javax.faces.context.FacesContext; 006 import javax.faces.component.UIComponent; 007 import javax.faces.application.FacesMessage; 008 009 import edu.nrao.sss.measure.TimeOfDay; 010 011 import org.apache.log4j.Logger; 012 013 public class TimeOfDayConverter implements Converter 014 { 015 private static Logger log = Logger.getLogger(TimeOfDayConverter.class); 016 017 public Object getAsObject(FacesContext context, UIComponent component, String value) 018 { 019 log.debug("Trying to convert " + value + " to an object"); 020 try 021 { 022 return TimeOfDay.parse(value); 023 } 024 catch (IllegalArgumentException iae) 025 { 026 throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_WARN, "", "Value '" + value + "' is not in a recognized Time of Day format."), iae); 027 } 028 } 029 030 public String getAsString(FacesContext context, UIComponent component, Object value) 031 { 032 log.debug("Trying to convert " + value + " to a string"); 033 034 if (value == null) 035 return ""; 036 037 else if (value instanceof TimeOfDay) 038 return ((TimeOfDay)value).toString(0,0); 039 040 else 041 { 042 log.warn("Cannot Convert objects of type: " + value.getClass()); 043 throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_WARN, "", "Cannot Convert objects of type: " + value.getClass())); 044 } 045 } 046 }