package hu.sch.api.search;
import hu.sch.api.group.GroupView;
import hu.sch.api.user.UserView;
import hu.sch.domain.Group;
import hu.sch.domain.user.User;
import java.util.Collections;
import java.util.List;
import static java.util.stream.Collectors.toList;
public class SearchResult {
private final long countOfUsers;
private final long countOfGroups;
private final List<UserView> users;
private final List<GroupView> groups;
protected SearchResult(long countOfUsers, long countOfGroups, List<UserView> users, List<GroupView> groups) {
this.countOfUsers = countOfUsers;
this.countOfGroups = countOfGroups;
this.users = users;
this.groups = groups;
}
public static SearchResult fromUsers(long userCount, long groupCount, List<User> users) {
List<UserView> userViewList = users.stream().map(u -> new UserView(u)).collect(toList());
return new SearchResult(userCount, groupCount, userViewList, Collections.emptyList());
}
public static SearchResult fromGroups(long userCount, long groupCount, List<Group> groups) {
List<GroupView> groupViewList = groups.stream().map(g -> new GroupView(g)).collect(toList());
return new SearchResult(userCount, groupCount, Collections.emptyList(), groupViewList);
}
public long getCountOfUsers() {
return countOfUsers;
}
public long getCountOfGroups() {
return countOfGroups;
}
public List<UserView> getUsers() {
return users;
}
public List<GroupView> getGroups() {
return groups;
}
}