1 package com.atlassian.jira.rest.client.api.domain.input;
2
3 import com.atlassian.jira.rest.client.api.domain.AuditAssociatedItem;
4 import com.atlassian.jira.rest.client.api.domain.AuditChangedValue;
5 import com.atlassian.jira.rest.client.api.domain.AuditRecordInput;
6 import com.google.common.collect.ImmutableList;
7
8 import javax.annotation.Nonnull;
9 import javax.annotation.Nullable;
10 import java.util.List;
11
12
13
14
15
16
17 public class AuditRecordBuilder {
18 String category;
19 String summary;
20 AuditAssociatedItem objectItem;
21 List<AuditChangedValue> values;
22 List<AuditAssociatedItem> associatedItems;
23
24 public AuditRecordBuilder(final String category, final String summary) {
25 this.category = category;
26 this.summary = summary;
27 }
28
29 public AuditRecordBuilder setObject(final AuditAssociatedItem objectItem) {
30 this.objectItem = objectItem;
31 return this;
32 }
33
34 public AuditRecordBuilder setObject(@Nullable final String id, final String name, final String typeName) {
35 this.objectItem = new AuditAssociatedItem(id, name, typeName, null, null);
36 return this;
37 }
38
39 public AuditRecordBuilder setChangedValues(final Iterable<AuditChangedValue> values) {
40 this.values = ImmutableList.copyOf(values);
41 return this;
42 }
43
44 public AuditRecordBuilder setAssociatedItems(final Iterable<AuditAssociatedItem> associatedItems) {
45 this.associatedItems = ImmutableList.copyOf(associatedItems);
46 return this;
47 }
48
49 @Nonnull
50 public AuditRecordInput build() {
51 return new AuditRecordInput(category, summary, objectItem, associatedItems, values);
52 }
53 }