package frostillicus.xsp.converter;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import com.ibm.xsp.extlib.util.ExtLibUtil;
import lotus.domino.*;
/**
* @since 1.0
*/
public class CommonNameConverter implements Converter {
@Override
public Object getAsObject(final FacesContext context, final UIComponent component, final String value) {
return value;
}
@Override
public String getAsString(final FacesContext context, final UIComponent component, final Object value) {
if (value instanceof String) {
return toCommon((String) value);
} else if (value instanceof Iterable) {
StringBuilder result = new StringBuilder();
boolean appended = false;
for (Object node : (Iterable<?>) value) {
if (node != null) {
if (appended) {
result.append(", ");
} else {
appended = true;
}
result.append(node.toString());
}
}
return result.toString();
}
return String.valueOf(value);
}
private String toCommon(final String value) {
try {
Session session = ExtLibUtil.getCurrentSession();
Name name = session.createName(value);
String result = name.getCommon();
name.recycle();
return result;
} catch (NotesException ne) {
return ne.toString();
}
}
}