/**
* Prepare different String representations.
*/
private void initStringRepresentation() {
stringValues = new HashMap<String, StringValue>();
StringValue nameValue = new StringValue() {
public String getString(Object value) {
if (value instanceof Contributor) {
Contributor c = (Contributor) value;
return c.getLastName() + ", " + c.getFirstName();
}
return StringValues.TO_STRING.getString(value);
}
};
stringValues.put("name", nameValue);
// show the joined date
StringValue dateValue = new StringValue() {
@Override
public String getString(Object value) {
if (value instanceof Contributor) {
return StringValues.DATE_TO_STRING.getString(
((Contributor) value).getJoinedDate());
}
return StringValues.TO_STRING.getString(value);
}
};
stringValues.put("date", dateValue);
// show the merits
StringValue meritValue = new StringValue() {
@Override
public String getString(Object value) {
if (value instanceof Contributor) {
return StringValues.NUMBER_TO_STRING.getString(
((Contributor) value).getMerits());
}
return StringValues.TO_STRING.getString(value);
}
};
stringValues.put("merits", meritValue);
// <snip> Unrelated, just for fun: Hyperlink
// string representation of contributor's email
StringValue emailValue = new StringValue() {
@Override
public String getString(Object value) {
if (value instanceof Contributor) {
URI mail = ((Contributor) value).getEmail();