001 002package com.commercetools.api.models.review; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007 008import javax.annotation.Nullable; 009import javax.validation.constraints.NotNull; 010 011import com.fasterxml.jackson.annotation.*; 012import com.fasterxml.jackson.databind.annotation.*; 013 014import io.vrap.rmf.base.client.utils.Generated; 015 016/** 017 * ReviewUpdateAction 018 * 019 * <hr> 020 * Example to create a subtype instance using the builder pattern 021 * <div class=code-example> 022 * <pre><code class='java'> 023 * ReviewUpdateAction reviewUpdateAction = ReviewUpdateAction.setAuthorNameBuilder() 024 * .build() 025 * </code></pre> 026 * </div> 027 */ 028@JsonSubTypes({ 029 @JsonSubTypes.Type(value = com.commercetools.api.models.review.ReviewSetAuthorNameActionImpl.class, name = ReviewSetAuthorNameAction.SET_AUTHOR_NAME), 030 @JsonSubTypes.Type(value = com.commercetools.api.models.review.ReviewSetCustomFieldActionImpl.class, name = ReviewSetCustomFieldAction.SET_CUSTOM_FIELD), 031 @JsonSubTypes.Type(value = com.commercetools.api.models.review.ReviewSetCustomTypeActionImpl.class, name = ReviewSetCustomTypeAction.SET_CUSTOM_TYPE), 032 @JsonSubTypes.Type(value = com.commercetools.api.models.review.ReviewSetCustomerActionImpl.class, name = ReviewSetCustomerAction.SET_CUSTOMER), 033 @JsonSubTypes.Type(value = com.commercetools.api.models.review.ReviewSetKeyActionImpl.class, name = ReviewSetKeyAction.SET_KEY), 034 @JsonSubTypes.Type(value = com.commercetools.api.models.review.ReviewSetLocaleActionImpl.class, name = ReviewSetLocaleAction.SET_LOCALE), 035 @JsonSubTypes.Type(value = com.commercetools.api.models.review.ReviewSetRatingActionImpl.class, name = ReviewSetRatingAction.SET_RATING), 036 @JsonSubTypes.Type(value = com.commercetools.api.models.review.ReviewSetTargetActionImpl.class, name = ReviewSetTargetAction.SET_TARGET), 037 @JsonSubTypes.Type(value = com.commercetools.api.models.review.ReviewSetTextActionImpl.class, name = ReviewSetTextAction.SET_TEXT), 038 @JsonSubTypes.Type(value = com.commercetools.api.models.review.ReviewSetTitleActionImpl.class, name = ReviewSetTitleAction.SET_TITLE), 039 @JsonSubTypes.Type(value = com.commercetools.api.models.review.ReviewTransitionStateActionImpl.class, name = ReviewTransitionStateAction.TRANSITION_STATE) }) 040@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "action", defaultImpl = ReviewUpdateActionImpl.class, visible = true) 041@JsonDeserialize(as = ReviewUpdateActionImpl.class) 042@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 043public interface ReviewUpdateAction extends com.commercetools.api.models.ResourceUpdateAction<ReviewUpdateAction> { 044 045 /** 046 * 047 * @return action 048 */ 049 @NotNull 050 @JsonProperty("action") 051 public String getAction(); 052 053 /** 054 * factory method to create a deep copy of ReviewUpdateAction 055 * @param template instance to be copied 056 * @return copy instance 057 */ 058 @Nullable 059 public static ReviewUpdateAction deepCopy(@Nullable final ReviewUpdateAction template) { 060 if (template == null) { 061 return null; 062 } 063 if (template instanceof com.commercetools.api.models.review.ReviewSetAuthorNameAction) { 064 return com.commercetools.api.models.review.ReviewSetAuthorNameAction 065 .deepCopy((com.commercetools.api.models.review.ReviewSetAuthorNameAction) template); 066 } 067 if (template instanceof com.commercetools.api.models.review.ReviewSetCustomFieldAction) { 068 return com.commercetools.api.models.review.ReviewSetCustomFieldAction 069 .deepCopy((com.commercetools.api.models.review.ReviewSetCustomFieldAction) template); 070 } 071 if (template instanceof com.commercetools.api.models.review.ReviewSetCustomTypeAction) { 072 return com.commercetools.api.models.review.ReviewSetCustomTypeAction 073 .deepCopy((com.commercetools.api.models.review.ReviewSetCustomTypeAction) template); 074 } 075 if (template instanceof com.commercetools.api.models.review.ReviewSetCustomerAction) { 076 return com.commercetools.api.models.review.ReviewSetCustomerAction 077 .deepCopy((com.commercetools.api.models.review.ReviewSetCustomerAction) template); 078 } 079 if (template instanceof com.commercetools.api.models.review.ReviewSetKeyAction) { 080 return com.commercetools.api.models.review.ReviewSetKeyAction 081 .deepCopy((com.commercetools.api.models.review.ReviewSetKeyAction) template); 082 } 083 if (template instanceof com.commercetools.api.models.review.ReviewSetLocaleAction) { 084 return com.commercetools.api.models.review.ReviewSetLocaleAction 085 .deepCopy((com.commercetools.api.models.review.ReviewSetLocaleAction) template); 086 } 087 if (template instanceof com.commercetools.api.models.review.ReviewSetRatingAction) { 088 return com.commercetools.api.models.review.ReviewSetRatingAction 089 .deepCopy((com.commercetools.api.models.review.ReviewSetRatingAction) template); 090 } 091 if (template instanceof com.commercetools.api.models.review.ReviewSetTargetAction) { 092 return com.commercetools.api.models.review.ReviewSetTargetAction 093 .deepCopy((com.commercetools.api.models.review.ReviewSetTargetAction) template); 094 } 095 if (template instanceof com.commercetools.api.models.review.ReviewSetTextAction) { 096 return com.commercetools.api.models.review.ReviewSetTextAction 097 .deepCopy((com.commercetools.api.models.review.ReviewSetTextAction) template); 098 } 099 if (template instanceof com.commercetools.api.models.review.ReviewSetTitleAction) { 100 return com.commercetools.api.models.review.ReviewSetTitleAction 101 .deepCopy((com.commercetools.api.models.review.ReviewSetTitleAction) template); 102 } 103 if (template instanceof com.commercetools.api.models.review.ReviewTransitionStateAction) { 104 return com.commercetools.api.models.review.ReviewTransitionStateAction 105 .deepCopy((com.commercetools.api.models.review.ReviewTransitionStateAction) template); 106 } 107 ReviewUpdateActionImpl instance = new ReviewUpdateActionImpl(); 108 return instance; 109 } 110 111 /** 112 * builder for setAuthorName subtype 113 * @return builder 114 */ 115 public static com.commercetools.api.models.review.ReviewSetAuthorNameActionBuilder setAuthorNameBuilder() { 116 return com.commercetools.api.models.review.ReviewSetAuthorNameActionBuilder.of(); 117 } 118 119 /** 120 * builder for setCustomField subtype 121 * @return builder 122 */ 123 public static com.commercetools.api.models.review.ReviewSetCustomFieldActionBuilder setCustomFieldBuilder() { 124 return com.commercetools.api.models.review.ReviewSetCustomFieldActionBuilder.of(); 125 } 126 127 /** 128 * builder for setCustomType subtype 129 * @return builder 130 */ 131 public static com.commercetools.api.models.review.ReviewSetCustomTypeActionBuilder setCustomTypeBuilder() { 132 return com.commercetools.api.models.review.ReviewSetCustomTypeActionBuilder.of(); 133 } 134 135 /** 136 * builder for setCustomer subtype 137 * @return builder 138 */ 139 public static com.commercetools.api.models.review.ReviewSetCustomerActionBuilder setCustomerBuilder() { 140 return com.commercetools.api.models.review.ReviewSetCustomerActionBuilder.of(); 141 } 142 143 /** 144 * builder for setKey subtype 145 * @return builder 146 */ 147 public static com.commercetools.api.models.review.ReviewSetKeyActionBuilder setKeyBuilder() { 148 return com.commercetools.api.models.review.ReviewSetKeyActionBuilder.of(); 149 } 150 151 /** 152 * builder for setLocale subtype 153 * @return builder 154 */ 155 public static com.commercetools.api.models.review.ReviewSetLocaleActionBuilder setLocaleBuilder() { 156 return com.commercetools.api.models.review.ReviewSetLocaleActionBuilder.of(); 157 } 158 159 /** 160 * builder for setRating subtype 161 * @return builder 162 */ 163 public static com.commercetools.api.models.review.ReviewSetRatingActionBuilder setRatingBuilder() { 164 return com.commercetools.api.models.review.ReviewSetRatingActionBuilder.of(); 165 } 166 167 /** 168 * builder for setTarget subtype 169 * @return builder 170 */ 171 public static com.commercetools.api.models.review.ReviewSetTargetActionBuilder setTargetBuilder() { 172 return com.commercetools.api.models.review.ReviewSetTargetActionBuilder.of(); 173 } 174 175 /** 176 * builder for setText subtype 177 * @return builder 178 */ 179 public static com.commercetools.api.models.review.ReviewSetTextActionBuilder setTextBuilder() { 180 return com.commercetools.api.models.review.ReviewSetTextActionBuilder.of(); 181 } 182 183 /** 184 * builder for setTitle subtype 185 * @return builder 186 */ 187 public static com.commercetools.api.models.review.ReviewSetTitleActionBuilder setTitleBuilder() { 188 return com.commercetools.api.models.review.ReviewSetTitleActionBuilder.of(); 189 } 190 191 /** 192 * builder for transitionState subtype 193 * @return builder 194 */ 195 public static com.commercetools.api.models.review.ReviewTransitionStateActionBuilder transitionStateBuilder() { 196 return com.commercetools.api.models.review.ReviewTransitionStateActionBuilder.of(); 197 } 198 199 /** 200 * accessor map function 201 * @param <T> mapped type 202 * @param helper function to map the object 203 * @return mapped value 204 */ 205 default <T> T withReviewUpdateAction(Function<ReviewUpdateAction, T> helper) { 206 return helper.apply(this); 207 } 208 209 /** 210 * gives a TypeReference for usage with Jackson DataBind 211 * @return TypeReference 212 */ 213 public static com.fasterxml.jackson.core.type.TypeReference<ReviewUpdateAction> typeReference() { 214 return new com.fasterxml.jackson.core.type.TypeReference<ReviewUpdateAction>() { 215 @Override 216 public String toString() { 217 return "TypeReference<ReviewUpdateAction>"; 218 } 219 }; 220 } 221}