|
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();
}
|
|