package br.com.arsmachina.eloquentia.tapestry.services;
import org.apache.tapestry5.ValueEncoder;
import org.apache.tapestry5.services.ValueEncoderFactory;
import br.com.arsmachina.eloquentia.controller.PageController;
import br.com.arsmachina.eloquentia.controller.UserController;
import br.com.arsmachina.eloquentia.entity.User;
public class UserValueEncoder implements ValueEncoder<User>, ValueEncoderFactory<User> {
final private UserController userController;
/**
* Single constructor of this class.
*
* @param pageController a {@link PageController}.
*/
public UserValueEncoder(UserController userController) {
this.userController = userController;
}
public ValueEncoder<User> create(Class<User> type) {
return this;
}
public String toClient(User user) {
return user != null ? user.getLogin() : null;
}
public User toValue(String clientValue) {
User user = null;
if (clientValue != null) {
user = userController.findByLogin(clientValue);
}
return user;
}
}