public class CSV2ListConverter implements Converter { public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException { if ( context == null ) throw new NullPointerException( "context is null" ); if ( component == null ) throw new NullPointerException( "component is null"); if ( value == null ) return null;
if ( value.lastIndexOf( "," ) == -1 ){ throw new ConverterException( new FacesMessage( "CSV 文字列の変換に失敗しました。" ) ); }
String[] valueArray = value.split( "," ); List list = new ArrayList();
for (int i = 0; i < valueArray.length; i++) { list.add( valueArray[i] ); }
return list; }
public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException { if ( value == null ) return ""; List list = (List)value; StringBuffer sb = new StringBuffer(); int i = 0;
// List→ CSV 文字列 for (Iterator iter = list.iterator(); iter.hasNext();) { sb.append( (String) iter.next() ); if ( 0 < i ) sb.append( "," ); i++; } return sb.toString(); }