001package com.box.sdkgen.schemas.filerequestcopyrequest; 002 003import com.box.sdkgen.schemas.filerequestupdaterequest.FileRequestUpdateRequest; 004import com.box.sdkgen.schemas.filerequestupdaterequest.FileRequestUpdateRequestStatusField; 005import com.box.sdkgen.serialization.json.EnumWrapper; 006import com.fasterxml.jackson.annotation.JsonFilter; 007import com.fasterxml.jackson.annotation.JsonProperty; 008import java.time.OffsetDateTime; 009import java.util.Objects; 010 011/** The request body to copy a file request. */ 012@JsonFilter("nullablePropertyFilter") 013public class FileRequestCopyRequest extends FileRequestUpdateRequest { 014 015 /** The folder to associate the new file request to. */ 016 protected final FileRequestCopyRequestFolderField folder; 017 018 public FileRequestCopyRequest(@JsonProperty("folder") FileRequestCopyRequestFolderField folder) { 019 super(); 020 this.folder = folder; 021 } 022 023 protected FileRequestCopyRequest(Builder builder) { 024 super(builder); 025 this.folder = builder.folder; 026 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 027 } 028 029 public FileRequestCopyRequestFolderField getFolder() { 030 return folder; 031 } 032 033 @Override 034 public boolean equals(Object o) { 035 if (this == o) { 036 return true; 037 } 038 if (o == null || getClass() != o.getClass()) { 039 return false; 040 } 041 FileRequestCopyRequest casted = (FileRequestCopyRequest) o; 042 return Objects.equals(title, casted.title) 043 && Objects.equals(description, casted.description) 044 && Objects.equals(status, casted.status) 045 && Objects.equals(isEmailRequired, casted.isEmailRequired) 046 && Objects.equals(isDescriptionRequired, casted.isDescriptionRequired) 047 && Objects.equals(expiresAt, casted.expiresAt) 048 && Objects.equals(folder, casted.folder); 049 } 050 051 @Override 052 public int hashCode() { 053 return Objects.hash( 054 title, description, status, isEmailRequired, isDescriptionRequired, expiresAt, folder); 055 } 056 057 @Override 058 public String toString() { 059 return "FileRequestCopyRequest{" 060 + "title='" 061 + title 062 + '\'' 063 + ", " 064 + "description='" 065 + description 066 + '\'' 067 + ", " 068 + "status='" 069 + status 070 + '\'' 071 + ", " 072 + "isEmailRequired='" 073 + isEmailRequired 074 + '\'' 075 + ", " 076 + "isDescriptionRequired='" 077 + isDescriptionRequired 078 + '\'' 079 + ", " 080 + "expiresAt='" 081 + expiresAt 082 + '\'' 083 + ", " 084 + "folder='" 085 + folder 086 + '\'' 087 + "}"; 088 } 089 090 public static class Builder extends FileRequestUpdateRequest.Builder { 091 092 protected final FileRequestCopyRequestFolderField folder; 093 094 public Builder(FileRequestCopyRequestFolderField folder) { 095 super(); 096 this.folder = folder; 097 } 098 099 @Override 100 public Builder title(String title) { 101 this.title = title; 102 return this; 103 } 104 105 @Override 106 public Builder description(String description) { 107 this.description = description; 108 return this; 109 } 110 111 @Override 112 public Builder status(FileRequestUpdateRequestStatusField status) { 113 this.status = new EnumWrapper<FileRequestUpdateRequestStatusField>(status); 114 return this; 115 } 116 117 @Override 118 public Builder status(EnumWrapper<FileRequestUpdateRequestStatusField> status) { 119 this.status = status; 120 return this; 121 } 122 123 @Override 124 public Builder isEmailRequired(Boolean isEmailRequired) { 125 this.isEmailRequired = isEmailRequired; 126 return this; 127 } 128 129 @Override 130 public Builder isDescriptionRequired(Boolean isDescriptionRequired) { 131 this.isDescriptionRequired = isDescriptionRequired; 132 return this; 133 } 134 135 @Override 136 public Builder expiresAt(OffsetDateTime expiresAt) { 137 this.expiresAt = expiresAt; 138 return this; 139 } 140 141 public FileRequestCopyRequest build() { 142 return new FileRequestCopyRequest(this); 143 } 144 } 145}