diff options
Diffstat (limited to 'controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java index af8617cbf05..26bef06adcf 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java @@ -32,24 +32,20 @@ public class DeploymentJobs { private final ImmutableMap<JobType, JobStatus> status; private final Optional<String> jiraIssueId; - /** Creates an empty set of deployment jobs */ - public DeploymentJobs(long projectId) { - this(Optional.of(projectId), ImmutableMap.of(), Optional.empty()); - } - - public DeploymentJobs(Optional<Long> projectId, Collection<JobStatus> jobStatusEntries, Optional<String> jiraIssueId) { + public DeploymentJobs(Optional<Long> projectId, Collection<JobStatus> jobStatusEntries, + Optional<String> jiraIssueId) { this(projectId, asMap(jobStatusEntries), jiraIssueId); } - + private DeploymentJobs(Optional<Long> projectId, Map<JobType, JobStatus> status, Optional<String> jiraIssueId) { - Objects.requireNonNull(projectId, "projectId cannot be null"); + requireId(projectId, "projectId cannot be null or <= 0"); Objects.requireNonNull(status, "status cannot be null"); Objects.requireNonNull(jiraIssueId, "jiraIssueId cannot be null"); this.projectId = projectId; this.status = ImmutableMap.copyOf(status); this.jiraIssueId = jiraIssueId; } - + private static Map<JobType, JobStatus> asMap(Collection<JobStatus> jobStatusEntries) { ImmutableMap.Builder<JobType, JobStatus> b = new ImmutableMap.Builder<>(); for (JobStatus jobStatusEntry : jobStatusEntries) @@ -306,4 +302,15 @@ public class DeploymentJobs { } } + private static Optional<Long> requireId(Optional<Long> id, String message) { + Objects.requireNonNull(id, message); + if (!id.isPresent()) { + return id; + } + if (id.get() <= 0) { + throw new IllegalArgumentException(message); + } + return id; + } + } |