diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2017-10-20 09:58:59 +0200 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2017-10-20 09:58:59 +0200 |
commit | e5e197ec9390033da499cebfb68ba92ac74cb17b (patch) | |
tree | bce37c26ab829ec8db428f72b5aef822cedc16b3 /controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Issue.java | |
parent | b41d2e64fddaaba2763db313423652dfd4d0912c (diff) |
Refactored deployment issues >_<
Diffstat (limited to 'controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Issue.java')
-rw-r--r-- | controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Issue.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Issue.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Issue.java new file mode 100644 index 00000000000..71ad7df6249 --- /dev/null +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Issue.java @@ -0,0 +1,54 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.hosted.controller.api.integration.organization; + +import com.yahoo.vespa.hosted.controller.api.identifiers.PropertyId; + +import java.util.Optional; + +public class Issue { + + private final String summary; + private final String description; + private final User assignee; + private final PropertyId propertyId; + + private Issue(String summary, String description, User assignee, PropertyId propertyId) { + this.summary = summary; + this.description = description; + this.assignee = assignee; + this.propertyId = propertyId; + } + + public Issue(String summary, String description) { + this(summary, description, null, null); + } + + public Issue append(String appendage) { + return new Issue(summary, description + appendage, assignee, propertyId); + } + + public Issue withUser(User assignee) { + return new Issue(summary, description, assignee, propertyId); + } + + public Issue withPropertyId(PropertyId propertyId) { + return new Issue(summary, description, assignee, propertyId); + } + + public String summary() { + return summary; + } + + public String description() { + return description; + } + + public Optional<User> assignee() { + return Optional.ofNullable(assignee); + } + + public Optional<PropertyId> propertyId() { + return Optional.ofNullable(propertyId); + } + +} |