* @param permissionsForCurrentUser The permissions for the current logged in user. Not {@code null}.
* @throws NullPointerException if any parameters are {@code null}.
*/
public Project(ProjectDetails projectDetails, PermissionsSet permissionsForCurrentUser) {
this.projectDetails = checkNotNull(projectDetails);
this.permissionManager = new ProjectPermissionManager(getProjectId());
this.permissionManager.setUserPermissions(Application.get().getUserId(), checkNotNull(permissionsForCurrentUser));
this.layoutManager = new LayoutManager(this);
this.eventPollingManager = EventPollingManager.get(10 * 1000, projectDetails.getProjectId());
eventPollingManager.start();
}