package com.uploadcare.api; import com.uploadcare.data.ProjectData; import java.util.ArrayList; import java.util.List; /** * The resource for project, associated with the connecting account. */ public class Project { private final Client client; private final ProjectData projectData; public Project(Client client, ProjectData projectData) { this.client = client; this.projectData = projectData; } public String getName() { return projectData.name; } public String getPubKey() { return projectData.pubKey; } public Collaborator getOwner() { if (projectData.collaborators.size() > 0) { return new Collaborator(this, projectData.collaborators.get(0)); } else { return null; } } public List<Collaborator> getCollaborators() { ArrayList<Collaborator> collaborators = new ArrayList<Collaborator>(projectData.collaborators.size()); for (ProjectData.CollaboratorData collaboratorData : projectData.collaborators) { collaborators.add(new Collaborator(this, collaboratorData)); } return collaborators; } public class Collaborator { private final Project project; private final ProjectData.CollaboratorData collaboratorData; private Collaborator(Project project, ProjectData.CollaboratorData collaboratorData) { this.project = project; this.collaboratorData = collaboratorData; } public String getName() { return collaboratorData.name; } public String getEmail() { return collaboratorData.email; } } }