001package com.box.sdkgen.managers.sharedlinksfolders; 002 003import com.box.sdkgen.internal.NullableFieldTracker; 004import com.box.sdkgen.internal.SerializableObject; 005import com.fasterxml.jackson.annotation.JsonFilter; 006import com.fasterxml.jackson.annotation.JsonProperty; 007import java.util.Objects; 008 009@JsonFilter("nullablePropertyFilter") 010public class AddShareLinkToFolderRequestBodySharedLinkPermissionsField extends SerializableObject { 011 012 /** 013 * If the shared link allows for downloading of files. This can only be set when `access` is set 014 * to `open` or `company`. 015 */ 016 @JsonProperty("can_download") 017 protected Boolean canDownload; 018 019 /** 020 * If the shared link allows for previewing of files. This value is always `true`. For shared 021 * links on folders this also applies to any items in the folder. 022 */ 023 @JsonProperty("can_preview") 024 protected Boolean canPreview; 025 026 /** This value can only be `false` for items with a `type` of `folder`. */ 027 @JsonProperty("can_edit") 028 protected Boolean canEdit; 029 030 public AddShareLinkToFolderRequestBodySharedLinkPermissionsField() { 031 super(); 032 } 033 034 protected AddShareLinkToFolderRequestBodySharedLinkPermissionsField(Builder builder) { 035 super(); 036 this.canDownload = builder.canDownload; 037 this.canPreview = builder.canPreview; 038 this.canEdit = builder.canEdit; 039 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 040 } 041 042 public Boolean getCanDownload() { 043 return canDownload; 044 } 045 046 public Boolean getCanPreview() { 047 return canPreview; 048 } 049 050 public Boolean getCanEdit() { 051 return canEdit; 052 } 053 054 @Override 055 public boolean equals(Object o) { 056 if (this == o) { 057 return true; 058 } 059 if (o == null || getClass() != o.getClass()) { 060 return false; 061 } 062 AddShareLinkToFolderRequestBodySharedLinkPermissionsField casted = 063 (AddShareLinkToFolderRequestBodySharedLinkPermissionsField) o; 064 return Objects.equals(canDownload, casted.canDownload) 065 && Objects.equals(canPreview, casted.canPreview) 066 && Objects.equals(canEdit, casted.canEdit); 067 } 068 069 @Override 070 public int hashCode() { 071 return Objects.hash(canDownload, canPreview, canEdit); 072 } 073 074 @Override 075 public String toString() { 076 return "AddShareLinkToFolderRequestBodySharedLinkPermissionsField{" 077 + "canDownload='" 078 + canDownload 079 + '\'' 080 + ", " 081 + "canPreview='" 082 + canPreview 083 + '\'' 084 + ", " 085 + "canEdit='" 086 + canEdit 087 + '\'' 088 + "}"; 089 } 090 091 public static class Builder extends NullableFieldTracker { 092 093 protected Boolean canDownload; 094 095 protected Boolean canPreview; 096 097 protected Boolean canEdit; 098 099 public Builder canDownload(Boolean canDownload) { 100 this.canDownload = canDownload; 101 return this; 102 } 103 104 public Builder canPreview(Boolean canPreview) { 105 this.canPreview = canPreview; 106 return this; 107 } 108 109 public Builder canEdit(Boolean canEdit) { 110 this.canEdit = canEdit; 111 return this; 112 } 113 114 public AddShareLinkToFolderRequestBodySharedLinkPermissionsField build() { 115 return new AddShareLinkToFolderRequestBodySharedLinkPermissionsField(this); 116 } 117 } 118}