View Javadoc

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   * Input used for creating new Audit records.
14   *
15   * @since v2.0.0
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  }