001package com.box.sdkgen.managers.folders; 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 CopyFolderRequestBody extends SerializableObject { 011 012 /** 013 * An optional new name for the copied folder. 014 * 015 * <p>There are some restrictions to the file name. Names containing non-printable ASCII 016 * characters, forward and backward slashes (`/`, `\`), as well as names with trailing spaces are 017 * prohibited. 018 * 019 * <p>Additionally, the names `.` and `..` are not allowed either. 020 */ 021 protected String name; 022 023 /** The destination folder to copy the folder to. */ 024 protected final CopyFolderRequestBodyParentField parent; 025 026 public CopyFolderRequestBody(@JsonProperty("parent") CopyFolderRequestBodyParentField parent) { 027 super(); 028 this.parent = parent; 029 } 030 031 protected CopyFolderRequestBody(Builder builder) { 032 super(); 033 this.name = builder.name; 034 this.parent = builder.parent; 035 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 036 } 037 038 public String getName() { 039 return name; 040 } 041 042 public CopyFolderRequestBodyParentField getParent() { 043 return parent; 044 } 045 046 @Override 047 public boolean equals(Object o) { 048 if (this == o) { 049 return true; 050 } 051 if (o == null || getClass() != o.getClass()) { 052 return false; 053 } 054 CopyFolderRequestBody casted = (CopyFolderRequestBody) o; 055 return Objects.equals(name, casted.name) && Objects.equals(parent, casted.parent); 056 } 057 058 @Override 059 public int hashCode() { 060 return Objects.hash(name, parent); 061 } 062 063 @Override 064 public String toString() { 065 return "CopyFolderRequestBody{" 066 + "name='" 067 + name 068 + '\'' 069 + ", " 070 + "parent='" 071 + parent 072 + '\'' 073 + "}"; 074 } 075 076 public static class Builder extends NullableFieldTracker { 077 078 protected String name; 079 080 protected final CopyFolderRequestBodyParentField parent; 081 082 public Builder(CopyFolderRequestBodyParentField parent) { 083 super(); 084 this.parent = parent; 085 } 086 087 public Builder name(String name) { 088 this.name = name; 089 return this; 090 } 091 092 public CopyFolderRequestBody build() { 093 return new CopyFolderRequestBody(this); 094 } 095 } 096}