server/src/jetbrains/buildServer/sharedResources/pages/beans/ProjectPageBean.java (53 lines of code) (raw):
package jetbrains.buildServer.sharedResources.pages.beans;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
import jetbrains.buildServer.serverSide.SProject;
import jetbrains.buildServer.sharedResources.model.resources.Resource;
import org.jetbrains.annotations.NotNull;
/**
* Created with IntelliJ IDEA.
*
* @author Oleg Rybak (oleg.rybak@jetbrains.com)
*/
public class ProjectPageBean {
@NotNull
private final SProject myProject;
@NotNull
private final List<Resource> myOwnResources;
@NotNull
private final Map<String, List<Resource>> myTreeResources;
@NotNull
private final Map<String, Resource> myOverridesMap;
ProjectPageBean(@NotNull final SProject project,
@NotNull final List<Resource> allOwnResources,
@NotNull final Map<String, List<Resource>> treeResources,
@NotNull final Map<String, Resource> overridesMap) {
myProject = project;
// _ALL_ own resources are supplied separately, as we display duplicates on the page.
// tree resources ignores resources with non unique names
myOwnResources = allOwnResources;
myTreeResources = treeResources;
myOverridesMap = overridesMap;
}
@NotNull
public SProject getProject() {
return myProject;
}
public Map<String, SProject> getProjects() {
return myProject.getProjectPath().stream().collect(Collectors.toMap(SProject::getProjectId, Function.identity()));
}
@NotNull
public List<SProject> getProjectPath() {
final List<SProject> result = myProject.getProjectPath();
Collections.reverse(result);
return result;
}
@NotNull
public List<Resource> getOwnResources() {
return myOwnResources;
}
@NotNull
public Map<String, List<Resource>> getInheritedResources() {
return myTreeResources;
}
@NotNull
public Map<String, Resource> getOverridesMap() {
return myOverridesMap;
}
}