001package com.box.sdkgen.schemas.folderfull; 002 003import com.box.sdkgen.schemas.folder.Folder; 004import com.box.sdkgen.schemas.folder.FolderFolderUploadEmailField; 005import com.box.sdkgen.schemas.folder.FolderItemStatusField; 006import com.box.sdkgen.schemas.folder.FolderPathCollectionField; 007import com.box.sdkgen.schemas.folder.FolderSharedLinkField; 008import com.box.sdkgen.schemas.folderbase.FolderBaseTypeField; 009import com.box.sdkgen.schemas.foldermini.FolderMini; 010import com.box.sdkgen.schemas.items.Items; 011import com.box.sdkgen.schemas.usermini.UserMini; 012import com.box.sdkgen.serialization.json.EnumWrapper; 013import com.box.sdkgen.serialization.json.Valuable; 014import com.fasterxml.jackson.annotation.JsonFilter; 015import com.fasterxml.jackson.annotation.JsonProperty; 016import com.fasterxml.jackson.core.JsonGenerator; 017import com.fasterxml.jackson.core.JsonParser; 018import com.fasterxml.jackson.databind.DeserializationContext; 019import com.fasterxml.jackson.databind.JsonDeserializer; 020import com.fasterxml.jackson.databind.JsonNode; 021import com.fasterxml.jackson.databind.JsonSerializer; 022import com.fasterxml.jackson.databind.SerializerProvider; 023import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 024import com.fasterxml.jackson.databind.annotation.JsonSerialize; 025import java.io.IOException; 026import java.time.OffsetDateTime; 027import java.util.ArrayList; 028import java.util.List; 029import java.util.Objects; 030 031/** 032 * A full representation of a folder, as can be returned from any folder API endpoints by default. 033 */ 034@JsonFilter("nullablePropertyFilter") 035public class FolderFull extends Folder { 036 037 @JsonDeserialize(using = FolderFullSyncStateField.FolderFullSyncStateFieldDeserializer.class) 038 @JsonSerialize(using = FolderFullSyncStateField.FolderFullSyncStateFieldSerializer.class) 039 @JsonProperty("sync_state") 040 protected EnumWrapper<FolderFullSyncStateField> syncState; 041 042 /** Specifies if this folder has any other collaborators. */ 043 @JsonProperty("has_collaborations") 044 protected Boolean hasCollaborations; 045 046 protected FolderFullPermissionsField permissions; 047 048 protected List<String> tags; 049 050 @JsonProperty("can_non_owners_invite") 051 protected Boolean canNonOwnersInvite; 052 053 /** Specifies if this folder is owned by a user outside of the authenticated enterprise. */ 054 @JsonProperty("is_externally_owned") 055 protected Boolean isExternallyOwned; 056 057 protected FolderFullMetadataField metadata; 058 059 @JsonProperty("is_collaboration_restricted_to_enterprise") 060 protected Boolean isCollaborationRestrictedToEnterprise; 061 062 /** 063 * A list of access levels that are available for this folder. 064 * 065 * <p>For some folders, like the root folder, this will always be an empty list as sharing is not 066 * allowed at that level. 067 */ 068 @JsonDeserialize(using = AllowedSharedLinkAccessLevelsDeserializer.class) 069 @JsonSerialize(using = AllowedSharedLinkAccessLevelsSerializer.class) 070 @JsonProperty("allowed_shared_link_access_levels") 071 protected List<EnumWrapper<FolderFullAllowedSharedLinkAccessLevelsField>> 072 allowedSharedLinkAccessLevels; 073 074 /** A list of the types of roles that user can be invited at when sharing this folder. */ 075 @JsonDeserialize(using = AllowedInviteeRolesDeserializer.class) 076 @JsonSerialize(using = AllowedInviteeRolesSerializer.class) 077 @JsonProperty("allowed_invitee_roles") 078 protected List<EnumWrapper<FolderFullAllowedInviteeRolesField>> allowedInviteeRoles; 079 080 @JsonProperty("watermark_info") 081 protected FolderFullWatermarkInfoField watermarkInfo; 082 083 /** 084 * Specifies if the folder can be accessed with the direct shared link or a shared link to a 085 * parent folder. 086 */ 087 @JsonProperty("is_accessible_via_shared_link") 088 protected Boolean isAccessibleViaSharedLink; 089 090 /** 091 * Specifies if collaborators who are not owners of this folder are restricted from viewing other 092 * collaborations on this folder. 093 * 094 * <p>It also restricts non-owners from inviting new collaborators. 095 */ 096 @JsonProperty("can_non_owners_view_collaborators") 097 protected Boolean canNonOwnersViewCollaborators; 098 099 protected FolderFullClassificationField classification; 100 101 /** 102 * This field will return true if the folder or any ancestor of the folder is associated with at 103 * least one app item. Note that this will return true even if the context user does not have 104 * access to the app item(s) associated with the folder. 105 */ 106 @JsonProperty("is_associated_with_app_item") 107 protected Boolean isAssociatedWithAppItem; 108 109 public FolderFull(@JsonProperty("id") String id) { 110 super(id); 111 } 112 113 protected FolderFull(Builder builder) { 114 super(builder); 115 this.syncState = builder.syncState; 116 this.hasCollaborations = builder.hasCollaborations; 117 this.permissions = builder.permissions; 118 this.tags = builder.tags; 119 this.canNonOwnersInvite = builder.canNonOwnersInvite; 120 this.isExternallyOwned = builder.isExternallyOwned; 121 this.metadata = builder.metadata; 122 this.isCollaborationRestrictedToEnterprise = builder.isCollaborationRestrictedToEnterprise; 123 this.allowedSharedLinkAccessLevels = builder.allowedSharedLinkAccessLevels; 124 this.allowedInviteeRoles = builder.allowedInviteeRoles; 125 this.watermarkInfo = builder.watermarkInfo; 126 this.isAccessibleViaSharedLink = builder.isAccessibleViaSharedLink; 127 this.canNonOwnersViewCollaborators = builder.canNonOwnersViewCollaborators; 128 this.classification = builder.classification; 129 this.isAssociatedWithAppItem = builder.isAssociatedWithAppItem; 130 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 131 } 132 133 public EnumWrapper<FolderFullSyncStateField> getSyncState() { 134 return syncState; 135 } 136 137 public Boolean getHasCollaborations() { 138 return hasCollaborations; 139 } 140 141 public FolderFullPermissionsField getPermissions() { 142 return permissions; 143 } 144 145 public List<String> getTags() { 146 return tags; 147 } 148 149 public Boolean getCanNonOwnersInvite() { 150 return canNonOwnersInvite; 151 } 152 153 public Boolean getIsExternallyOwned() { 154 return isExternallyOwned; 155 } 156 157 public FolderFullMetadataField getMetadata() { 158 return metadata; 159 } 160 161 public Boolean getIsCollaborationRestrictedToEnterprise() { 162 return isCollaborationRestrictedToEnterprise; 163 } 164 165 public List<EnumWrapper<FolderFullAllowedSharedLinkAccessLevelsField>> 166 getAllowedSharedLinkAccessLevels() { 167 return allowedSharedLinkAccessLevels; 168 } 169 170 public List<EnumWrapper<FolderFullAllowedInviteeRolesField>> getAllowedInviteeRoles() { 171 return allowedInviteeRoles; 172 } 173 174 public FolderFullWatermarkInfoField getWatermarkInfo() { 175 return watermarkInfo; 176 } 177 178 public Boolean getIsAccessibleViaSharedLink() { 179 return isAccessibleViaSharedLink; 180 } 181 182 public Boolean getCanNonOwnersViewCollaborators() { 183 return canNonOwnersViewCollaborators; 184 } 185 186 public FolderFullClassificationField getClassification() { 187 return classification; 188 } 189 190 public Boolean getIsAssociatedWithAppItem() { 191 return isAssociatedWithAppItem; 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 FolderFull casted = (FolderFull) o; 203 return Objects.equals(id, casted.id) 204 && Objects.equals(etag, casted.etag) 205 && Objects.equals(type, casted.type) 206 && Objects.equals(sequenceId, casted.sequenceId) 207 && Objects.equals(name, casted.name) 208 && Objects.equals(createdAt, casted.createdAt) 209 && Objects.equals(modifiedAt, casted.modifiedAt) 210 && Objects.equals(description, casted.description) 211 && Objects.equals(size, casted.size) 212 && Objects.equals(pathCollection, casted.pathCollection) 213 && Objects.equals(createdBy, casted.createdBy) 214 && Objects.equals(modifiedBy, casted.modifiedBy) 215 && Objects.equals(trashedAt, casted.trashedAt) 216 && Objects.equals(purgedAt, casted.purgedAt) 217 && Objects.equals(contentCreatedAt, casted.contentCreatedAt) 218 && Objects.equals(contentModifiedAt, casted.contentModifiedAt) 219 && Objects.equals(ownedBy, casted.ownedBy) 220 && Objects.equals(sharedLink, casted.sharedLink) 221 && Objects.equals(folderUploadEmail, casted.folderUploadEmail) 222 && Objects.equals(parent, casted.parent) 223 && Objects.equals(itemStatus, casted.itemStatus) 224 && Objects.equals(itemCollection, casted.itemCollection) 225 && Objects.equals(syncState, casted.syncState) 226 && Objects.equals(hasCollaborations, casted.hasCollaborations) 227 && Objects.equals(permissions, casted.permissions) 228 && Objects.equals(tags, casted.tags) 229 && Objects.equals(canNonOwnersInvite, casted.canNonOwnersInvite) 230 && Objects.equals(isExternallyOwned, casted.isExternallyOwned) 231 && Objects.equals(metadata, casted.metadata) 232 && Objects.equals( 233 isCollaborationRestrictedToEnterprise, casted.isCollaborationRestrictedToEnterprise) 234 && Objects.equals(allowedSharedLinkAccessLevels, casted.allowedSharedLinkAccessLevels) 235 && Objects.equals(allowedInviteeRoles, casted.allowedInviteeRoles) 236 && Objects.equals(watermarkInfo, casted.watermarkInfo) 237 && Objects.equals(isAccessibleViaSharedLink, casted.isAccessibleViaSharedLink) 238 && Objects.equals(canNonOwnersViewCollaborators, casted.canNonOwnersViewCollaborators) 239 && Objects.equals(classification, casted.classification) 240 && Objects.equals(isAssociatedWithAppItem, casted.isAssociatedWithAppItem); 241 } 242 243 @Override 244 public int hashCode() { 245 return Objects.hash( 246 id, 247 etag, 248 type, 249 sequenceId, 250 name, 251 createdAt, 252 modifiedAt, 253 description, 254 size, 255 pathCollection, 256 createdBy, 257 modifiedBy, 258 trashedAt, 259 purgedAt, 260 contentCreatedAt, 261 contentModifiedAt, 262 ownedBy, 263 sharedLink, 264 folderUploadEmail, 265 parent, 266 itemStatus, 267 itemCollection, 268 syncState, 269 hasCollaborations, 270 permissions, 271 tags, 272 canNonOwnersInvite, 273 isExternallyOwned, 274 metadata, 275 isCollaborationRestrictedToEnterprise, 276 allowedSharedLinkAccessLevels, 277 allowedInviteeRoles, 278 watermarkInfo, 279 isAccessibleViaSharedLink, 280 canNonOwnersViewCollaborators, 281 classification, 282 isAssociatedWithAppItem); 283 } 284 285 @Override 286 public String toString() { 287 return "FolderFull{" 288 + "id='" 289 + id 290 + '\'' 291 + ", " 292 + "etag='" 293 + etag 294 + '\'' 295 + ", " 296 + "type='" 297 + type 298 + '\'' 299 + ", " 300 + "sequenceId='" 301 + sequenceId 302 + '\'' 303 + ", " 304 + "name='" 305 + name 306 + '\'' 307 + ", " 308 + "createdAt='" 309 + createdAt 310 + '\'' 311 + ", " 312 + "modifiedAt='" 313 + modifiedAt 314 + '\'' 315 + ", " 316 + "description='" 317 + description 318 + '\'' 319 + ", " 320 + "size='" 321 + size 322 + '\'' 323 + ", " 324 + "pathCollection='" 325 + pathCollection 326 + '\'' 327 + ", " 328 + "createdBy='" 329 + createdBy 330 + '\'' 331 + ", " 332 + "modifiedBy='" 333 + modifiedBy 334 + '\'' 335 + ", " 336 + "trashedAt='" 337 + trashedAt 338 + '\'' 339 + ", " 340 + "purgedAt='" 341 + purgedAt 342 + '\'' 343 + ", " 344 + "contentCreatedAt='" 345 + contentCreatedAt 346 + '\'' 347 + ", " 348 + "contentModifiedAt='" 349 + contentModifiedAt 350 + '\'' 351 + ", " 352 + "ownedBy='" 353 + ownedBy 354 + '\'' 355 + ", " 356 + "sharedLink='" 357 + sharedLink 358 + '\'' 359 + ", " 360 + "folderUploadEmail='" 361 + folderUploadEmail 362 + '\'' 363 + ", " 364 + "parent='" 365 + parent 366 + '\'' 367 + ", " 368 + "itemStatus='" 369 + itemStatus 370 + '\'' 371 + ", " 372 + "itemCollection='" 373 + itemCollection 374 + '\'' 375 + ", " 376 + "syncState='" 377 + syncState 378 + '\'' 379 + ", " 380 + "hasCollaborations='" 381 + hasCollaborations 382 + '\'' 383 + ", " 384 + "permissions='" 385 + permissions 386 + '\'' 387 + ", " 388 + "tags='" 389 + tags 390 + '\'' 391 + ", " 392 + "canNonOwnersInvite='" 393 + canNonOwnersInvite 394 + '\'' 395 + ", " 396 + "isExternallyOwned='" 397 + isExternallyOwned 398 + '\'' 399 + ", " 400 + "metadata='" 401 + metadata 402 + '\'' 403 + ", " 404 + "isCollaborationRestrictedToEnterprise='" 405 + isCollaborationRestrictedToEnterprise 406 + '\'' 407 + ", " 408 + "allowedSharedLinkAccessLevels='" 409 + allowedSharedLinkAccessLevels 410 + '\'' 411 + ", " 412 + "allowedInviteeRoles='" 413 + allowedInviteeRoles 414 + '\'' 415 + ", " 416 + "watermarkInfo='" 417 + watermarkInfo 418 + '\'' 419 + ", " 420 + "isAccessibleViaSharedLink='" 421 + isAccessibleViaSharedLink 422 + '\'' 423 + ", " 424 + "canNonOwnersViewCollaborators='" 425 + canNonOwnersViewCollaborators 426 + '\'' 427 + ", " 428 + "classification='" 429 + classification 430 + '\'' 431 + ", " 432 + "isAssociatedWithAppItem='" 433 + isAssociatedWithAppItem 434 + '\'' 435 + "}"; 436 } 437 438 public static class Builder extends Folder.Builder { 439 440 protected EnumWrapper<FolderFullSyncStateField> syncState; 441 442 protected Boolean hasCollaborations; 443 444 protected FolderFullPermissionsField permissions; 445 446 protected List<String> tags; 447 448 protected Boolean canNonOwnersInvite; 449 450 protected Boolean isExternallyOwned; 451 452 protected FolderFullMetadataField metadata; 453 454 protected Boolean isCollaborationRestrictedToEnterprise; 455 456 protected List<EnumWrapper<FolderFullAllowedSharedLinkAccessLevelsField>> 457 allowedSharedLinkAccessLevels; 458 459 protected List<EnumWrapper<FolderFullAllowedInviteeRolesField>> allowedInviteeRoles; 460 461 protected FolderFullWatermarkInfoField watermarkInfo; 462 463 protected Boolean isAccessibleViaSharedLink; 464 465 protected Boolean canNonOwnersViewCollaborators; 466 467 protected FolderFullClassificationField classification; 468 469 protected Boolean isAssociatedWithAppItem; 470 471 public Builder(String id) { 472 super(id); 473 } 474 475 public Builder syncState(FolderFullSyncStateField syncState) { 476 this.syncState = new EnumWrapper<FolderFullSyncStateField>(syncState); 477 return this; 478 } 479 480 public Builder syncState(EnumWrapper<FolderFullSyncStateField> syncState) { 481 this.syncState = syncState; 482 return this; 483 } 484 485 public Builder hasCollaborations(Boolean hasCollaborations) { 486 this.hasCollaborations = hasCollaborations; 487 return this; 488 } 489 490 public Builder permissions(FolderFullPermissionsField permissions) { 491 this.permissions = permissions; 492 return this; 493 } 494 495 public Builder tags(List<String> tags) { 496 this.tags = tags; 497 return this; 498 } 499 500 public Builder canNonOwnersInvite(Boolean canNonOwnersInvite) { 501 this.canNonOwnersInvite = canNonOwnersInvite; 502 return this; 503 } 504 505 public Builder isExternallyOwned(Boolean isExternallyOwned) { 506 this.isExternallyOwned = isExternallyOwned; 507 return this; 508 } 509 510 public Builder metadata(FolderFullMetadataField metadata) { 511 this.metadata = metadata; 512 return this; 513 } 514 515 public Builder isCollaborationRestrictedToEnterprise( 516 Boolean isCollaborationRestrictedToEnterprise) { 517 this.isCollaborationRestrictedToEnterprise = isCollaborationRestrictedToEnterprise; 518 return this; 519 } 520 521 public Builder allowedSharedLinkAccessLevels( 522 List<? extends Valuable> allowedSharedLinkAccessLevels) { 523 this.allowedSharedLinkAccessLevels = 524 EnumWrapper.wrapValuableEnumList( 525 allowedSharedLinkAccessLevels, FolderFullAllowedSharedLinkAccessLevelsField.class); 526 return this; 527 } 528 529 public Builder allowedInviteeRoles(List<? extends Valuable> allowedInviteeRoles) { 530 this.allowedInviteeRoles = 531 EnumWrapper.wrapValuableEnumList( 532 allowedInviteeRoles, FolderFullAllowedInviteeRolesField.class); 533 return this; 534 } 535 536 public Builder watermarkInfo(FolderFullWatermarkInfoField watermarkInfo) { 537 this.watermarkInfo = watermarkInfo; 538 return this; 539 } 540 541 public Builder isAccessibleViaSharedLink(Boolean isAccessibleViaSharedLink) { 542 this.isAccessibleViaSharedLink = isAccessibleViaSharedLink; 543 return this; 544 } 545 546 public Builder canNonOwnersViewCollaborators(Boolean canNonOwnersViewCollaborators) { 547 this.canNonOwnersViewCollaborators = canNonOwnersViewCollaborators; 548 return this; 549 } 550 551 public Builder classification(FolderFullClassificationField classification) { 552 this.classification = classification; 553 return this; 554 } 555 556 public Builder isAssociatedWithAppItem(Boolean isAssociatedWithAppItem) { 557 this.isAssociatedWithAppItem = isAssociatedWithAppItem; 558 return this; 559 } 560 561 @Override 562 public Builder etag(String etag) { 563 this.etag = etag; 564 this.markNullableFieldAsSet("etag"); 565 return this; 566 } 567 568 @Override 569 public Builder type(FolderBaseTypeField type) { 570 this.type = new EnumWrapper<FolderBaseTypeField>(type); 571 return this; 572 } 573 574 @Override 575 public Builder type(EnumWrapper<FolderBaseTypeField> type) { 576 this.type = type; 577 return this; 578 } 579 580 @Override 581 public Builder sequenceId(String sequenceId) { 582 this.sequenceId = sequenceId; 583 return this; 584 } 585 586 @Override 587 public Builder name(String name) { 588 this.name = name; 589 return this; 590 } 591 592 @Override 593 public Builder createdAt(OffsetDateTime createdAt) { 594 this.createdAt = createdAt; 595 this.markNullableFieldAsSet("created_at"); 596 return this; 597 } 598 599 @Override 600 public Builder modifiedAt(OffsetDateTime modifiedAt) { 601 this.modifiedAt = modifiedAt; 602 this.markNullableFieldAsSet("modified_at"); 603 return this; 604 } 605 606 @Override 607 public Builder description(String description) { 608 this.description = description; 609 return this; 610 } 611 612 @Override 613 public Builder size(Long size) { 614 this.size = size; 615 return this; 616 } 617 618 @Override 619 public Builder pathCollection(FolderPathCollectionField pathCollection) { 620 this.pathCollection = pathCollection; 621 return this; 622 } 623 624 @Override 625 public Builder createdBy(UserMini createdBy) { 626 this.createdBy = createdBy; 627 return this; 628 } 629 630 @Override 631 public Builder modifiedBy(UserMini modifiedBy) { 632 this.modifiedBy = modifiedBy; 633 return this; 634 } 635 636 @Override 637 public Builder trashedAt(OffsetDateTime trashedAt) { 638 this.trashedAt = trashedAt; 639 this.markNullableFieldAsSet("trashed_at"); 640 return this; 641 } 642 643 @Override 644 public Builder purgedAt(OffsetDateTime purgedAt) { 645 this.purgedAt = purgedAt; 646 this.markNullableFieldAsSet("purged_at"); 647 return this; 648 } 649 650 @Override 651 public Builder contentCreatedAt(OffsetDateTime contentCreatedAt) { 652 this.contentCreatedAt = contentCreatedAt; 653 this.markNullableFieldAsSet("content_created_at"); 654 return this; 655 } 656 657 @Override 658 public Builder contentModifiedAt(OffsetDateTime contentModifiedAt) { 659 this.contentModifiedAt = contentModifiedAt; 660 this.markNullableFieldAsSet("content_modified_at"); 661 return this; 662 } 663 664 @Override 665 public Builder ownedBy(UserMini ownedBy) { 666 this.ownedBy = ownedBy; 667 return this; 668 } 669 670 @Override 671 public Builder sharedLink(FolderSharedLinkField sharedLink) { 672 this.sharedLink = sharedLink; 673 this.markNullableFieldAsSet("shared_link"); 674 return this; 675 } 676 677 @Override 678 public Builder folderUploadEmail(FolderFolderUploadEmailField folderUploadEmail) { 679 this.folderUploadEmail = folderUploadEmail; 680 this.markNullableFieldAsSet("folder_upload_email"); 681 return this; 682 } 683 684 @Override 685 public Builder parent(FolderMini parent) { 686 this.parent = parent; 687 this.markNullableFieldAsSet("parent"); 688 return this; 689 } 690 691 @Override 692 public Builder itemStatus(FolderItemStatusField itemStatus) { 693 this.itemStatus = new EnumWrapper<FolderItemStatusField>(itemStatus); 694 return this; 695 } 696 697 @Override 698 public Builder itemStatus(EnumWrapper<FolderItemStatusField> itemStatus) { 699 this.itemStatus = itemStatus; 700 return this; 701 } 702 703 @Override 704 public Builder itemCollection(Items itemCollection) { 705 this.itemCollection = itemCollection; 706 return this; 707 } 708 709 public FolderFull build() { 710 if (this.type == null) { 711 this.type = new EnumWrapper<FolderBaseTypeField>(FolderBaseTypeField.FOLDER); 712 } 713 return new FolderFull(this); 714 } 715 } 716 717 public static class AllowedSharedLinkAccessLevelsDeserializer 718 extends JsonDeserializer<List<EnumWrapper<FolderFullAllowedSharedLinkAccessLevelsField>>> { 719 720 public final JsonDeserializer<EnumWrapper<FolderFullAllowedSharedLinkAccessLevelsField>> 721 elementDeserializer; 722 723 public AllowedSharedLinkAccessLevelsDeserializer() { 724 super(); 725 this.elementDeserializer = 726 new FolderFullAllowedSharedLinkAccessLevelsField 727 .FolderFullAllowedSharedLinkAccessLevelsFieldDeserializer(); 728 } 729 730 @Override 731 public List<EnumWrapper<FolderFullAllowedSharedLinkAccessLevelsField>> deserialize( 732 JsonParser p, DeserializationContext ctxt) throws IOException { 733 JsonNode node = p.getCodec().readTree(p); 734 List<EnumWrapper<FolderFullAllowedSharedLinkAccessLevelsField>> elements = new ArrayList<>(); 735 for (JsonNode item : node) { 736 JsonParser pa = item.traverse(p.getCodec()); 737 pa.nextToken(); 738 elements.add(elementDeserializer.deserialize(pa, ctxt)); 739 } 740 return elements; 741 } 742 } 743 744 public static class AllowedSharedLinkAccessLevelsSerializer 745 extends JsonSerializer<List<EnumWrapper<FolderFullAllowedSharedLinkAccessLevelsField>>> { 746 747 public final JsonSerializer<EnumWrapper<FolderFullAllowedSharedLinkAccessLevelsField>> 748 elementSerializer; 749 750 public AllowedSharedLinkAccessLevelsSerializer() { 751 super(); 752 this.elementSerializer = 753 new FolderFullAllowedSharedLinkAccessLevelsField 754 .FolderFullAllowedSharedLinkAccessLevelsFieldSerializer(); 755 } 756 757 @Override 758 public void serialize( 759 List<EnumWrapper<FolderFullAllowedSharedLinkAccessLevelsField>> value, 760 JsonGenerator gen, 761 SerializerProvider serializers) 762 throws IOException { 763 gen.writeStartArray(); 764 for (EnumWrapper<FolderFullAllowedSharedLinkAccessLevelsField> item : value) { 765 elementSerializer.serialize(item, gen, serializers); 766 } 767 gen.writeEndArray(); 768 } 769 } 770 771 public static class AllowedInviteeRolesDeserializer 772 extends JsonDeserializer<List<EnumWrapper<FolderFullAllowedInviteeRolesField>>> { 773 774 public final JsonDeserializer<EnumWrapper<FolderFullAllowedInviteeRolesField>> 775 elementDeserializer; 776 777 public AllowedInviteeRolesDeserializer() { 778 super(); 779 this.elementDeserializer = 780 new FolderFullAllowedInviteeRolesField.FolderFullAllowedInviteeRolesFieldDeserializer(); 781 } 782 783 @Override 784 public List<EnumWrapper<FolderFullAllowedInviteeRolesField>> deserialize( 785 JsonParser p, DeserializationContext ctxt) throws IOException { 786 JsonNode node = p.getCodec().readTree(p); 787 List<EnumWrapper<FolderFullAllowedInviteeRolesField>> elements = new ArrayList<>(); 788 for (JsonNode item : node) { 789 JsonParser pa = item.traverse(p.getCodec()); 790 pa.nextToken(); 791 elements.add(elementDeserializer.deserialize(pa, ctxt)); 792 } 793 return elements; 794 } 795 } 796 797 public static class AllowedInviteeRolesSerializer 798 extends JsonSerializer<List<EnumWrapper<FolderFullAllowedInviteeRolesField>>> { 799 800 public final JsonSerializer<EnumWrapper<FolderFullAllowedInviteeRolesField>> elementSerializer; 801 802 public AllowedInviteeRolesSerializer() { 803 super(); 804 this.elementSerializer = 805 new FolderFullAllowedInviteeRolesField.FolderFullAllowedInviteeRolesFieldSerializer(); 806 } 807 808 @Override 809 public void serialize( 810 List<EnumWrapper<FolderFullAllowedInviteeRolesField>> value, 811 JsonGenerator gen, 812 SerializerProvider serializers) 813 throws IOException { 814 gen.writeStartArray(); 815 for (EnumWrapper<FolderFullAllowedInviteeRolesField> item : value) { 816 elementSerializer.serialize(item, gen, serializers); 817 } 818 gen.writeEndArray(); 819 } 820 } 821}