001package com.box.sdkgen.schemas.rolevariable; 002 003import com.box.sdkgen.internal.NullableFieldTracker; 004import com.box.sdkgen.internal.SerializableObject; 005import com.box.sdkgen.serialization.json.EnumWrapper; 006import com.fasterxml.jackson.annotation.JsonFilter; 007import com.fasterxml.jackson.annotation.JsonProperty; 008import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 009import com.fasterxml.jackson.databind.annotation.JsonSerialize; 010import java.util.Objects; 011 012/** Determines if the workflow outcome affects a specific collaborator role. */ 013@JsonFilter("nullablePropertyFilter") 014public class RoleVariable extends SerializableObject { 015 016 /** Role object type. */ 017 @JsonDeserialize(using = RoleVariableTypeField.RoleVariableTypeFieldDeserializer.class) 018 @JsonSerialize(using = RoleVariableTypeField.RoleVariableTypeFieldSerializer.class) 019 protected EnumWrapper<RoleVariableTypeField> type; 020 021 /** The variable type used by the object. */ 022 @JsonDeserialize( 023 using = RoleVariableVariableTypeField.RoleVariableVariableTypeFieldDeserializer.class) 024 @JsonSerialize( 025 using = RoleVariableVariableTypeField.RoleVariableVariableTypeFieldSerializer.class) 026 @JsonProperty("variable_type") 027 protected EnumWrapper<RoleVariableVariableTypeField> variableType; 028 029 @JsonDeserialize( 030 using = RoleVariableVariableValueField.RoleVariableVariableValueFieldDeserializer.class) 031 @JsonSerialize( 032 using = RoleVariableVariableValueField.RoleVariableVariableValueFieldSerializer.class) 033 @JsonProperty("variable_value") 034 protected final EnumWrapper<RoleVariableVariableValueField> variableValue; 035 036 public RoleVariable(RoleVariableVariableValueField variableValue) { 037 super(); 038 this.variableValue = new EnumWrapper<RoleVariableVariableValueField>(variableValue); 039 this.type = new EnumWrapper<RoleVariableTypeField>(RoleVariableTypeField.VARIABLE); 040 this.variableType = 041 new EnumWrapper<RoleVariableVariableTypeField>( 042 RoleVariableVariableTypeField.COLLABORATOR_ROLE); 043 } 044 045 public RoleVariable( 046 @JsonProperty("variable_value") EnumWrapper<RoleVariableVariableValueField> variableValue) { 047 super(); 048 this.variableValue = variableValue; 049 this.type = new EnumWrapper<RoleVariableTypeField>(RoleVariableTypeField.VARIABLE); 050 this.variableType = 051 new EnumWrapper<RoleVariableVariableTypeField>( 052 RoleVariableVariableTypeField.COLLABORATOR_ROLE); 053 } 054 055 protected RoleVariable(Builder builder) { 056 super(); 057 this.type = builder.type; 058 this.variableType = builder.variableType; 059 this.variableValue = builder.variableValue; 060 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 061 } 062 063 public EnumWrapper<RoleVariableTypeField> getType() { 064 return type; 065 } 066 067 public EnumWrapper<RoleVariableVariableTypeField> getVariableType() { 068 return variableType; 069 } 070 071 public EnumWrapper<RoleVariableVariableValueField> getVariableValue() { 072 return variableValue; 073 } 074 075 @Override 076 public boolean equals(Object o) { 077 if (this == o) { 078 return true; 079 } 080 if (o == null || getClass() != o.getClass()) { 081 return false; 082 } 083 RoleVariable casted = (RoleVariable) o; 084 return Objects.equals(type, casted.type) 085 && Objects.equals(variableType, casted.variableType) 086 && Objects.equals(variableValue, casted.variableValue); 087 } 088 089 @Override 090 public int hashCode() { 091 return Objects.hash(type, variableType, variableValue); 092 } 093 094 @Override 095 public String toString() { 096 return "RoleVariable{" 097 + "type='" 098 + type 099 + '\'' 100 + ", " 101 + "variableType='" 102 + variableType 103 + '\'' 104 + ", " 105 + "variableValue='" 106 + variableValue 107 + '\'' 108 + "}"; 109 } 110 111 public static class Builder extends NullableFieldTracker { 112 113 protected EnumWrapper<RoleVariableTypeField> type; 114 115 protected EnumWrapper<RoleVariableVariableTypeField> variableType; 116 117 protected final EnumWrapper<RoleVariableVariableValueField> variableValue; 118 119 public Builder(RoleVariableVariableValueField variableValue) { 120 super(); 121 this.variableValue = new EnumWrapper<RoleVariableVariableValueField>(variableValue); 122 } 123 124 public Builder(EnumWrapper<RoleVariableVariableValueField> variableValue) { 125 super(); 126 this.variableValue = variableValue; 127 } 128 129 public Builder type(RoleVariableTypeField type) { 130 this.type = new EnumWrapper<RoleVariableTypeField>(type); 131 return this; 132 } 133 134 public Builder type(EnumWrapper<RoleVariableTypeField> type) { 135 this.type = type; 136 return this; 137 } 138 139 public Builder variableType(RoleVariableVariableTypeField variableType) { 140 this.variableType = new EnumWrapper<RoleVariableVariableTypeField>(variableType); 141 return this; 142 } 143 144 public Builder variableType(EnumWrapper<RoleVariableVariableTypeField> variableType) { 145 this.variableType = variableType; 146 return this; 147 } 148 149 public RoleVariable build() { 150 if (this.type == null) { 151 this.type = new EnumWrapper<RoleVariableTypeField>(RoleVariableTypeField.VARIABLE); 152 } 153 if (this.variableType == null) { 154 this.variableType = 155 new EnumWrapper<RoleVariableVariableTypeField>( 156 RoleVariableVariableTypeField.COLLABORATOR_ROLE); 157 } 158 return new RoleVariable(this); 159 } 160 } 161}