001package com.box.sdkgen.schemas.workflow; 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.List; 011import java.util.Objects; 012 013@JsonFilter("nullablePropertyFilter") 014public class WorkflowFlowsTriggerField extends SerializableObject { 015 016 /** The trigger's resource type. */ 017 @JsonDeserialize( 018 using = WorkflowFlowsTriggerTypeField.WorkflowFlowsTriggerTypeFieldDeserializer.class) 019 @JsonSerialize( 020 using = WorkflowFlowsTriggerTypeField.WorkflowFlowsTriggerTypeFieldSerializer.class) 021 protected EnumWrapper<WorkflowFlowsTriggerTypeField> type; 022 023 /** The type of trigger selected for this flow. */ 024 @JsonDeserialize( 025 using = 026 WorkflowFlowsTriggerTriggerTypeField.WorkflowFlowsTriggerTriggerTypeFieldDeserializer 027 .class) 028 @JsonSerialize( 029 using = 030 WorkflowFlowsTriggerTriggerTypeField.WorkflowFlowsTriggerTriggerTypeFieldSerializer.class) 031 @JsonProperty("trigger_type") 032 protected EnumWrapper<WorkflowFlowsTriggerTriggerTypeField> triggerType; 033 034 /** List of trigger scopes. */ 035 protected List<WorkflowFlowsTriggerScopeField> scope; 036 037 public WorkflowFlowsTriggerField() { 038 super(); 039 } 040 041 protected WorkflowFlowsTriggerField(Builder builder) { 042 super(); 043 this.type = builder.type; 044 this.triggerType = builder.triggerType; 045 this.scope = builder.scope; 046 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 047 } 048 049 public EnumWrapper<WorkflowFlowsTriggerTypeField> getType() { 050 return type; 051 } 052 053 public EnumWrapper<WorkflowFlowsTriggerTriggerTypeField> getTriggerType() { 054 return triggerType; 055 } 056 057 public List<WorkflowFlowsTriggerScopeField> getScope() { 058 return scope; 059 } 060 061 @Override 062 public boolean equals(Object o) { 063 if (this == o) { 064 return true; 065 } 066 if (o == null || getClass() != o.getClass()) { 067 return false; 068 } 069 WorkflowFlowsTriggerField casted = (WorkflowFlowsTriggerField) o; 070 return Objects.equals(type, casted.type) 071 && Objects.equals(triggerType, casted.triggerType) 072 && Objects.equals(scope, casted.scope); 073 } 074 075 @Override 076 public int hashCode() { 077 return Objects.hash(type, triggerType, scope); 078 } 079 080 @Override 081 public String toString() { 082 return "WorkflowFlowsTriggerField{" 083 + "type='" 084 + type 085 + '\'' 086 + ", " 087 + "triggerType='" 088 + triggerType 089 + '\'' 090 + ", " 091 + "scope='" 092 + scope 093 + '\'' 094 + "}"; 095 } 096 097 public static class Builder extends NullableFieldTracker { 098 099 protected EnumWrapper<WorkflowFlowsTriggerTypeField> type; 100 101 protected EnumWrapper<WorkflowFlowsTriggerTriggerTypeField> triggerType; 102 103 protected List<WorkflowFlowsTriggerScopeField> scope; 104 105 public Builder type(WorkflowFlowsTriggerTypeField type) { 106 this.type = new EnumWrapper<WorkflowFlowsTriggerTypeField>(type); 107 return this; 108 } 109 110 public Builder type(EnumWrapper<WorkflowFlowsTriggerTypeField> type) { 111 this.type = type; 112 return this; 113 } 114 115 public Builder triggerType(WorkflowFlowsTriggerTriggerTypeField triggerType) { 116 this.triggerType = new EnumWrapper<WorkflowFlowsTriggerTriggerTypeField>(triggerType); 117 return this; 118 } 119 120 public Builder triggerType(EnumWrapper<WorkflowFlowsTriggerTriggerTypeField> triggerType) { 121 this.triggerType = triggerType; 122 return this; 123 } 124 125 public Builder scope(List<WorkflowFlowsTriggerScopeField> scope) { 126 this.scope = scope; 127 return this; 128 } 129 130 public WorkflowFlowsTriggerField build() { 131 return new WorkflowFlowsTriggerField(this); 132 } 133 } 134}