• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

box / box-java-sdk / #5076

07 Oct 2025 12:35PM UTC coverage: 37.132% (+0.007%) from 37.125%
#5076

push

github

web-flow
test: Change `Event.additionalDetails` field assertion in events test (box/box-codegen#858) (#1491)

18454 of 49699 relevant lines covered (37.13%)

0.37 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

7.83
/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java
1
package com.box.sdkgen.schemas.collaboration;
2

3
import com.box.sdkgen.internal.Nullable;
4
import com.box.sdkgen.internal.NullableFieldTracker;
5
import com.box.sdkgen.internal.SerializableObject;
6
import com.box.sdkgen.internal.utils.DateTimeUtils;
7
import com.box.sdkgen.schemas.appitem.AppItem;
8
import com.box.sdkgen.schemas.collaborationaccessgrantee.CollaborationAccessGrantee;
9
import com.box.sdkgen.schemas.collaborationitem.CollaborationItem;
10
import com.box.sdkgen.schemas.file.File;
11
import com.box.sdkgen.schemas.folder.Folder;
12
import com.box.sdkgen.schemas.groupmini.GroupMini;
13
import com.box.sdkgen.schemas.usercollaborations.UserCollaborations;
14
import com.box.sdkgen.schemas.weblink.WebLink;
15
import com.box.sdkgen.serialization.json.EnumWrapper;
16
import com.fasterxml.jackson.annotation.JsonFilter;
17
import com.fasterxml.jackson.annotation.JsonProperty;
18
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
19
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
20
import java.time.OffsetDateTime;
21
import java.util.Objects;
22

23
/**
24
 * Collaborations define access permissions for users and groups to files and folders, similar to
25
 * access control lists. A collaboration object grants a user or group access to a file or folder
26
 * with permissions defined by a specific role.
27
 */
28
@JsonFilter("nullablePropertyFilter")
29
public class Collaboration extends SerializableObject {
30

31
  /** The unique identifier for this collaboration. */
32
  protected final String id;
33

34
  /** The value will always be `collaboration`. */
35
  @JsonDeserialize(using = CollaborationTypeField.CollaborationTypeFieldDeserializer.class)
36
  @JsonSerialize(using = CollaborationTypeField.CollaborationTypeFieldSerializer.class)
37
  protected EnumWrapper<CollaborationTypeField> type;
38

39
  @Nullable protected CollaborationItem item;
40

41
  @JsonProperty("app_item")
42
  @Nullable
43
  protected AppItem appItem;
44

45
  @JsonProperty("accessible_by")
46
  protected CollaborationAccessGrantee accessibleBy;
47

48
  /**
49
   * The email address used to invite an unregistered collaborator, if they are not a registered
50
   * user.
51
   */
52
  @JsonProperty("invite_email")
53
  @Nullable
54
  protected String inviteEmail;
55

56
  /** The level of access granted. */
57
  @JsonDeserialize(using = CollaborationRoleField.CollaborationRoleFieldDeserializer.class)
58
  @JsonSerialize(using = CollaborationRoleField.CollaborationRoleFieldSerializer.class)
59
  protected EnumWrapper<CollaborationRoleField> role;
60

61
  /** When the collaboration will expire, or `null` if no expiration date is set. */
62
  @JsonProperty("expires_at")
63
  @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class)
64
  @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class)
65
  @Nullable
66
  protected OffsetDateTime expiresAt;
67

68
  /**
69
   * If set to `true`, collaborators have access to shared items, but such items won't be visible in
70
   * the All Files list. Additionally, collaborators won't see the path to the root folder for the
71
   * shared item.
72
   */
73
  @JsonProperty("is_access_only")
74
  protected Boolean isAccessOnly;
75

76
  /**
77
   * The status of the collaboration invitation. If the status is `pending`, `login` and `name`
78
   * return an empty string.
79
   */
80
  @JsonDeserialize(using = CollaborationStatusField.CollaborationStatusFieldDeserializer.class)
81
  @JsonSerialize(using = CollaborationStatusField.CollaborationStatusFieldSerializer.class)
82
  protected EnumWrapper<CollaborationStatusField> status;
83

84
  /** When the `status` of the collaboration object changed to `accepted` or `rejected`. */
85
  @JsonProperty("acknowledged_at")
86
  @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class)
87
  @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class)
88
  protected OffsetDateTime acknowledgedAt;
89

90
  @JsonProperty("created_by")
91
  protected UserCollaborations createdBy;
92

93
  /** When the collaboration object was created. */
94
  @JsonProperty("created_at")
95
  @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class)
96
  @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class)
97
  protected OffsetDateTime createdAt;
98

99
  /** When the collaboration object was last modified. */
100
  @JsonProperty("modified_at")
101
  @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class)
102
  @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class)
103
  protected OffsetDateTime modifiedAt;
104

105
  @JsonProperty("acceptance_requirements_status")
106
  protected CollaborationAcceptanceRequirementsStatusField acceptanceRequirementsStatus;
107

108
  public Collaboration(@JsonProperty("id") String id) {
109
    super();
1✔
110
    this.id = id;
1✔
111
    this.type = new EnumWrapper<CollaborationTypeField>(CollaborationTypeField.COLLABORATION);
1✔
112
  }
1✔
113

114
  protected Collaboration(Builder builder) {
115
    super();
×
116
    this.id = builder.id;
×
117
    this.type = builder.type;
×
118
    this.item = builder.item;
×
119
    this.appItem = builder.appItem;
×
120
    this.accessibleBy = builder.accessibleBy;
×
121
    this.inviteEmail = builder.inviteEmail;
×
122
    this.role = builder.role;
×
123
    this.expiresAt = builder.expiresAt;
×
124
    this.isAccessOnly = builder.isAccessOnly;
×
125
    this.status = builder.status;
×
126
    this.acknowledgedAt = builder.acknowledgedAt;
×
127
    this.createdBy = builder.createdBy;
×
128
    this.createdAt = builder.createdAt;
×
129
    this.modifiedAt = builder.modifiedAt;
×
130
    this.acceptanceRequirementsStatus = builder.acceptanceRequirementsStatus;
×
131
    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
×
132
  }
×
133

134
  public String getId() {
135
    return id;
1✔
136
  }
137

138
  public EnumWrapper<CollaborationTypeField> getType() {
139
    return type;
1✔
140
  }
141

142
  public CollaborationItem getItem() {
143
    return item;
×
144
  }
145

146
  public AppItem getAppItem() {
147
    return appItem;
×
148
  }
149

150
  public CollaborationAccessGrantee getAccessibleBy() {
151
    return accessibleBy;
×
152
  }
153

154
  public String getInviteEmail() {
155
    return inviteEmail;
1✔
156
  }
157

158
  public EnumWrapper<CollaborationRoleField> getRole() {
159
    return role;
1✔
160
  }
161

162
  public OffsetDateTime getExpiresAt() {
163
    return expiresAt;
×
164
  }
165

166
  public Boolean getIsAccessOnly() {
167
    return isAccessOnly;
×
168
  }
169

170
  public EnumWrapper<CollaborationStatusField> getStatus() {
171
    return status;
1✔
172
  }
173

174
  public OffsetDateTime getAcknowledgedAt() {
175
    return acknowledgedAt;
×
176
  }
177

178
  public UserCollaborations getCreatedBy() {
179
    return createdBy;
×
180
  }
181

182
  public OffsetDateTime getCreatedAt() {
183
    return createdAt;
×
184
  }
185

186
  public OffsetDateTime getModifiedAt() {
187
    return modifiedAt;
×
188
  }
189

190
  public CollaborationAcceptanceRequirementsStatusField getAcceptanceRequirementsStatus() {
191
    return acceptanceRequirementsStatus;
×
192
  }
193

194
  @Override
195
  public boolean equals(Object o) {
196
    if (this == o) {
×
197
      return true;
×
198
    }
199
    if (o == null || getClass() != o.getClass()) {
×
200
      return false;
×
201
    }
202
    Collaboration casted = (Collaboration) o;
×
203
    return Objects.equals(id, casted.id)
×
204
        && Objects.equals(type, casted.type)
×
205
        && Objects.equals(item, casted.item)
×
206
        && Objects.equals(appItem, casted.appItem)
×
207
        && Objects.equals(accessibleBy, casted.accessibleBy)
×
208
        && Objects.equals(inviteEmail, casted.inviteEmail)
×
209
        && Objects.equals(role, casted.role)
×
210
        && Objects.equals(expiresAt, casted.expiresAt)
×
211
        && Objects.equals(isAccessOnly, casted.isAccessOnly)
×
212
        && Objects.equals(status, casted.status)
×
213
        && Objects.equals(acknowledgedAt, casted.acknowledgedAt)
×
214
        && Objects.equals(createdBy, casted.createdBy)
×
215
        && Objects.equals(createdAt, casted.createdAt)
×
216
        && Objects.equals(modifiedAt, casted.modifiedAt)
×
217
        && Objects.equals(acceptanceRequirementsStatus, casted.acceptanceRequirementsStatus);
×
218
  }
219

220
  @Override
221
  public int hashCode() {
222
    return Objects.hash(
×
223
        id,
224
        type,
225
        item,
226
        appItem,
227
        accessibleBy,
228
        inviteEmail,
229
        role,
230
        expiresAt,
231
        isAccessOnly,
232
        status,
233
        acknowledgedAt,
234
        createdBy,
235
        createdAt,
236
        modifiedAt,
237
        acceptanceRequirementsStatus);
238
  }
239

240
  @Override
241
  public String toString() {
242
    return "Collaboration{"
×
243
        + "id='"
244
        + id
245
        + '\''
246
        + ", "
247
        + "type='"
248
        + type
249
        + '\''
250
        + ", "
251
        + "item='"
252
        + item
253
        + '\''
254
        + ", "
255
        + "appItem='"
256
        + appItem
257
        + '\''
258
        + ", "
259
        + "accessibleBy='"
260
        + accessibleBy
261
        + '\''
262
        + ", "
263
        + "inviteEmail='"
264
        + inviteEmail
265
        + '\''
266
        + ", "
267
        + "role='"
268
        + role
269
        + '\''
270
        + ", "
271
        + "expiresAt='"
272
        + expiresAt
273
        + '\''
274
        + ", "
275
        + "isAccessOnly='"
276
        + isAccessOnly
277
        + '\''
278
        + ", "
279
        + "status='"
280
        + status
281
        + '\''
282
        + ", "
283
        + "acknowledgedAt='"
284
        + acknowledgedAt
285
        + '\''
286
        + ", "
287
        + "createdBy='"
288
        + createdBy
289
        + '\''
290
        + ", "
291
        + "createdAt='"
292
        + createdAt
293
        + '\''
294
        + ", "
295
        + "modifiedAt='"
296
        + modifiedAt
297
        + '\''
298
        + ", "
299
        + "acceptanceRequirementsStatus='"
300
        + acceptanceRequirementsStatus
301
        + '\''
302
        + "}";
303
  }
304

305
  public static class Builder extends NullableFieldTracker {
306

307
    protected final String id;
308

309
    protected EnumWrapper<CollaborationTypeField> type;
310

311
    protected CollaborationItem item;
312

313
    protected AppItem appItem;
314

315
    protected CollaborationAccessGrantee accessibleBy;
316

317
    protected String inviteEmail;
318

319
    protected EnumWrapper<CollaborationRoleField> role;
320

321
    protected OffsetDateTime expiresAt;
322

323
    protected Boolean isAccessOnly;
324

325
    protected EnumWrapper<CollaborationStatusField> status;
326

327
    protected OffsetDateTime acknowledgedAt;
328

329
    protected UserCollaborations createdBy;
330

331
    protected OffsetDateTime createdAt;
332

333
    protected OffsetDateTime modifiedAt;
334

335
    protected CollaborationAcceptanceRequirementsStatusField acceptanceRequirementsStatus;
336

337
    public Builder(String id) {
338
      super();
×
339
      this.id = id;
×
340
      this.type = new EnumWrapper<CollaborationTypeField>(CollaborationTypeField.COLLABORATION);
×
341
    }
×
342

343
    public Builder type(CollaborationTypeField type) {
344
      this.type = new EnumWrapper<CollaborationTypeField>(type);
×
345
      return this;
×
346
    }
347

348
    public Builder type(EnumWrapper<CollaborationTypeField> type) {
349
      this.type = type;
×
350
      return this;
×
351
    }
352

353
    public Builder item(File item) {
354
      this.item = new CollaborationItem(item);
×
355
      this.markNullableFieldAsSet("item");
×
356
      return this;
×
357
    }
358

359
    public Builder item(Folder item) {
360
      this.item = new CollaborationItem(item);
×
361
      this.markNullableFieldAsSet("item");
×
362
      return this;
×
363
    }
364

365
    public Builder item(WebLink item) {
366
      this.item = new CollaborationItem(item);
×
367
      this.markNullableFieldAsSet("item");
×
368
      return this;
×
369
    }
370

371
    public Builder item(CollaborationItem item) {
372
      this.item = item;
×
373
      this.markNullableFieldAsSet("item");
×
374
      return this;
×
375
    }
376

377
    public Builder appItem(AppItem appItem) {
378
      this.appItem = appItem;
×
379
      this.markNullableFieldAsSet("app_item");
×
380
      return this;
×
381
    }
382

383
    public Builder accessibleBy(UserCollaborations accessibleBy) {
384
      this.accessibleBy = new CollaborationAccessGrantee(accessibleBy);
×
385
      return this;
×
386
    }
387

388
    public Builder accessibleBy(GroupMini accessibleBy) {
389
      this.accessibleBy = new CollaborationAccessGrantee(accessibleBy);
×
390
      return this;
×
391
    }
392

393
    public Builder accessibleBy(CollaborationAccessGrantee accessibleBy) {
394
      this.accessibleBy = accessibleBy;
×
395
      return this;
×
396
    }
397

398
    public Builder inviteEmail(String inviteEmail) {
399
      this.inviteEmail = inviteEmail;
×
400
      this.markNullableFieldAsSet("invite_email");
×
401
      return this;
×
402
    }
403

404
    public Builder role(CollaborationRoleField role) {
405
      this.role = new EnumWrapper<CollaborationRoleField>(role);
×
406
      return this;
×
407
    }
408

409
    public Builder role(EnumWrapper<CollaborationRoleField> role) {
410
      this.role = role;
×
411
      return this;
×
412
    }
413

414
    public Builder expiresAt(OffsetDateTime expiresAt) {
415
      this.expiresAt = expiresAt;
×
416
      this.markNullableFieldAsSet("expires_at");
×
417
      return this;
×
418
    }
419

420
    public Builder isAccessOnly(Boolean isAccessOnly) {
421
      this.isAccessOnly = isAccessOnly;
×
422
      return this;
×
423
    }
424

425
    public Builder status(CollaborationStatusField status) {
426
      this.status = new EnumWrapper<CollaborationStatusField>(status);
×
427
      return this;
×
428
    }
429

430
    public Builder status(EnumWrapper<CollaborationStatusField> status) {
431
      this.status = status;
×
432
      return this;
×
433
    }
434

435
    public Builder acknowledgedAt(OffsetDateTime acknowledgedAt) {
436
      this.acknowledgedAt = acknowledgedAt;
×
437
      return this;
×
438
    }
439

440
    public Builder createdBy(UserCollaborations createdBy) {
441
      this.createdBy = createdBy;
×
442
      return this;
×
443
    }
444

445
    public Builder createdAt(OffsetDateTime createdAt) {
446
      this.createdAt = createdAt;
×
447
      return this;
×
448
    }
449

450
    public Builder modifiedAt(OffsetDateTime modifiedAt) {
451
      this.modifiedAt = modifiedAt;
×
452
      return this;
×
453
    }
454

455
    public Builder acceptanceRequirementsStatus(
456
        CollaborationAcceptanceRequirementsStatusField acceptanceRequirementsStatus) {
457
      this.acceptanceRequirementsStatus = acceptanceRequirementsStatus;
×
458
      return this;
×
459
    }
460

461
    public Collaboration build() {
462
      return new Collaboration(this);
×
463
    }
464
  }
465
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc