summaryrefslogtreecommitdiffstats
path: root/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Issue.java
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2017-10-20 09:58:59 +0200
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2017-10-20 09:58:59 +0200
commite5e197ec9390033da499cebfb68ba92ac74cb17b (patch)
treebce37c26ab829ec8db428f72b5aef822cedc16b3 /controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Issue.java
parentb41d2e64fddaaba2763db313423652dfd4d0912c (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.java54
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);
+ }
+
+}