/* vim: set ts=2 et sw=2 cindent fo=qroca: */
package com.globant.katari.search.domain.mock;
import java.util.ArrayList;
import com.globant.katari.search.domain.SearchAdapter;
import com.globant.katari.search.domain.SearchResultElement;
import com.globant.katari.search.domain.Action;
import com.globant.katari.hibernate.coreuser.domain.Role;
/** An example handler, for converting User objects into search results.
*
* @author nira.amit@globant.com
*/
public class UserSearchAdapterExample implements SearchAdapter {
public SearchResultElement convert(final Object o, final float score) {
User user = (User) o;
ArrayList<Action> actions;
actions = new ArrayList<Action>();
actions.add(new Action("Edit", null,
"userEdit.do?id=" + user.getId()));
actions.add(new Action("Delete", null,
"userDelete.do?id=" + user.getId()));
StringBuilder roles = new StringBuilder();
for (Role role: user.getRoles()) {
if (roles.length() != 0) {
roles.append(", ");
}
roles.append(role.getName());
}
StringBuilder description = new StringBuilder();
description.append("User - name: " + user.getName());
description.append("; email: " + user.getEmail());
if (user.getRoles().size() != 0) {
description.append("; roles: " + roles.toString());
}
return new SearchResultElement("User", user.getName(),
description.toString(), "user.do?id=" + user.getId(), actions, score);
}
public String getViewUrl() {
return "/module/user/user.do";
}
@SuppressWarnings("unchecked")
public Class getAdaptedClass() {
return User.class;
}
}