001package com.box.sdkgen.managers.sharedlinksfiles; 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 AddShareLinkToFileRequestBodySharedLinkPermissionsField 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 /** 027 * If the shared link allows for editing of files. This can only be set when `access` is set to 028 * `open` or `company`. This value can only be `true` is `can_download` is also `true`. 029 */ 030 @JsonProperty("can_edit") 031 protected Boolean canEdit; 032 033 public AddShareLinkToFileRequestBodySharedLinkPermissionsField() { 034 super(); 035 } 036 037 protected AddShareLinkToFileRequestBodySharedLinkPermissionsField(Builder builder) { 038 super(); 039 this.canDownload = builder.canDownload; 040 this.canPreview = builder.canPreview; 041 this.canEdit = builder.canEdit; 042 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 043 } 044 045 public Boolean getCanDownload() { 046 return canDownload; 047 } 048 049 public Boolean getCanPreview() { 050 return canPreview; 051 } 052 053 public Boolean getCanEdit() { 054 return canEdit; 055 } 056 057 @Override 058 public boolean equals(Object o) { 059 if (this == o) { 060 return true; 061 } 062 if (o == null || getClass() != o.getClass()) { 063 return false; 064 } 065 AddShareLinkToFileRequestBodySharedLinkPermissionsField casted = 066 (AddShareLinkToFileRequestBodySharedLinkPermissionsField) o; 067 return Objects.equals(canDownload, casted.canDownload) 068 && Objects.equals(canPreview, casted.canPreview) 069 && Objects.equals(canEdit, casted.canEdit); 070 } 071 072 @Override 073 public int hashCode() { 074 return Objects.hash(canDownload, canPreview, canEdit); 075 } 076 077 @Override 078 public String toString() { 079 return "AddShareLinkToFileRequestBodySharedLinkPermissionsField{" 080 + "canDownload='" 081 + canDownload 082 + '\'' 083 + ", " 084 + "canPreview='" 085 + canPreview 086 + '\'' 087 + ", " 088 + "canEdit='" 089 + canEdit 090 + '\'' 091 + "}"; 092 } 093 094 public static class Builder extends NullableFieldTracker { 095 096 protected Boolean canDownload; 097 098 protected Boolean canPreview; 099 100 protected Boolean canEdit; 101 102 public Builder canDownload(Boolean canDownload) { 103 this.canDownload = canDownload; 104 return this; 105 } 106 107 public Builder canPreview(Boolean canPreview) { 108 this.canPreview = canPreview; 109 return this; 110 } 111 112 public Builder canEdit(Boolean canEdit) { 113 this.canEdit = canEdit; 114 return this; 115 } 116 117 public AddShareLinkToFileRequestBodySharedLinkPermissionsField build() { 118 return new AddShareLinkToFileRequestBodySharedLinkPermissionsField(this); 119 } 120 } 121}