package assemblers;
import java.util.ArrayList;
import java.util.List;
import models.User;
import models.helpers.UserConnectionHelper;
import DTO.UserSummaryDTO;
/**
* Assembler for the UserSummaryDTO class and related classes.
*
* @see UserSummaryDTO
* @author Alex Jarvis axj7@aber.ac.uk
*/
public class UserSummaryAssembler {
/**
* Writes a list of UserSummaryDTO objects based on the connections of the specified User.
*
* @param user
* @return
*/
public static List<UserSummaryDTO> writeDTOs(User user) {
List<UserSummaryDTO> userSummaries = new ArrayList<UserSummaryDTO>();
List<User> connections = UserConnectionHelper.userConnectionsAsUsers(user);
for (User connection : connections) {
userSummaries.add(writeDTO(connection));
}
return userSummaries;
}
/**
* Writes a UserSummaryDTO from the attributes of the User specified.
* @param user
* @return
*/
public static UserSummaryDTO writeDTO(User user) {
UserSummaryDTO userSummaryDTO = new UserSummaryDTO();
userSummaryDTO.id = user.id;
userSummaryDTO.email = user.email;
userSummaryDTO.firstName = user.firstName;
userSummaryDTO.lastName = user.lastName;
userSummaryDTO.mobileNumber = user.mobileNumber;
return userSummaryDTO;
}
/**
* Writes a UserSummaryDTO that only contains elements which are globally
* viewable e.g. the users do not have to be connected.
*
* @param user
* @return
*/
public static UserSummaryDTO writeRestrictedDTO(User user) {
UserSummaryDTO userSummaryDTO = new UserSummaryDTO();
userSummaryDTO.id = user.id;
userSummaryDTO.firstName = user.firstName;
userSummaryDTO.lastName = user.lastName;
return userSummaryDTO;
}
}