001 002package com.commercetools.api.models.order_edit; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007import java.util.stream.Collectors; 008 009import javax.annotation.Nullable; 010import javax.validation.Valid; 011import javax.validation.constraints.NotNull; 012 013import com.fasterxml.jackson.annotation.*; 014import com.fasterxml.jackson.databind.annotation.*; 015 016import io.vrap.rmf.base.client.utils.Generated; 017 018/** 019 * OrderEditUpdate 020 * 021 * <hr> 022 * Example to create an instance using the builder pattern 023 * <div class=code-example> 024 * <pre><code class='java'> 025 * OrderEditUpdate orderEditUpdate = OrderEditUpdate.builder() 026 * .version(0.3) 027 * .plusActions(actionsBuilder -> actionsBuilder) 028 * .build() 029 * </code></pre> 030 * </div> 031 */ 032@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 033@JsonDeserialize(as = OrderEditUpdateImpl.class) 034public interface OrderEditUpdate extends 035 com.commercetools.api.models.ResourceUpdate<OrderEditUpdate, OrderEditUpdateAction, OrderEditUpdateBuilder> { 036 037 /** 038 * <p>Expected version of the Order Edit on which the changes should be applied. If the expected version does not match the actual version, a 409 Conflict will be returned.</p> 039 * @return version 040 */ 041 @NotNull 042 @JsonProperty("version") 043 public Long getVersion(); 044 045 /** 046 * <p>Update actions to be performed on the Order Edit.</p> 047 * @return actions 048 */ 049 @NotNull 050 @Valid 051 @JsonProperty("actions") 052 public List<OrderEditUpdateAction> getActions(); 053 054 /** 055 * <p>If set to <code>true</code>, the Order Edit is applied on the Order without persisting it.</p> 056 * @return dryRun 057 */ 058 059 @JsonProperty("dryRun") 060 public Boolean getDryRun(); 061 062 /** 063 * <p>Expected version of the Order Edit on which the changes should be applied. If the expected version does not match the actual version, a 409 Conflict will be returned.</p> 064 * @param version value to be set 065 */ 066 067 public void setVersion(final Long version); 068 069 /** 070 * <p>Update actions to be performed on the Order Edit.</p> 071 * @param actions values to be set 072 */ 073 074 @JsonIgnore 075 public void setActions(final OrderEditUpdateAction... actions); 076 077 /** 078 * <p>Update actions to be performed on the Order Edit.</p> 079 * @param actions values to be set 080 */ 081 082 public void setActions(final List<OrderEditUpdateAction> actions); 083 084 /** 085 * <p>If set to <code>true</code>, the Order Edit is applied on the Order without persisting it.</p> 086 * @param dryRun value to be set 087 */ 088 089 public void setDryRun(final Boolean dryRun); 090 091 /** 092 * factory method 093 * @return instance of OrderEditUpdate 094 */ 095 public static OrderEditUpdate of() { 096 return new OrderEditUpdateImpl(); 097 } 098 099 /** 100 * factory method to create a shallow copy OrderEditUpdate 101 * @param template instance to be copied 102 * @return copy instance 103 */ 104 public static OrderEditUpdate of(final OrderEditUpdate template) { 105 OrderEditUpdateImpl instance = new OrderEditUpdateImpl(); 106 instance.setVersion(template.getVersion()); 107 instance.setActions(template.getActions()); 108 instance.setDryRun(template.getDryRun()); 109 return instance; 110 } 111 112 /** 113 * factory method to create a deep copy of OrderEditUpdate 114 * @param template instance to be copied 115 * @return copy instance 116 */ 117 @Nullable 118 public static OrderEditUpdate deepCopy(@Nullable final OrderEditUpdate template) { 119 if (template == null) { 120 return null; 121 } 122 OrderEditUpdateImpl instance = new OrderEditUpdateImpl(); 123 instance.setVersion(template.getVersion()); 124 instance.setActions(Optional.ofNullable(template.getActions()) 125 .map(t -> t.stream() 126 .map(com.commercetools.api.models.order_edit.OrderEditUpdateAction::deepCopy) 127 .collect(Collectors.toList())) 128 .orElse(null)); 129 instance.setDryRun(template.getDryRun()); 130 return instance; 131 } 132 133 /** 134 * builder factory method for OrderEditUpdate 135 * @return builder 136 */ 137 public static OrderEditUpdateBuilder builder() { 138 return OrderEditUpdateBuilder.of(); 139 } 140 141 /** 142 * create builder for OrderEditUpdate instance 143 * @param template instance with prefilled values for the builder 144 * @return builder 145 */ 146 public static OrderEditUpdateBuilder builder(final OrderEditUpdate template) { 147 return OrderEditUpdateBuilder.of(template); 148 } 149 150 /** 151 * accessor map function 152 * @param <T> mapped type 153 * @param helper function to map the object 154 * @return mapped value 155 */ 156 default <T> T withOrderEditUpdate(Function<OrderEditUpdate, T> helper) { 157 return helper.apply(this); 158 } 159 160 /** 161 * gives a TypeReference for usage with Jackson DataBind 162 * @return TypeReference 163 */ 164 public static com.fasterxml.jackson.core.type.TypeReference<OrderEditUpdate> typeReference() { 165 return new com.fasterxml.jackson.core.type.TypeReference<OrderEditUpdate>() { 166 @Override 167 public String toString() { 168 return "TypeReference<OrderEditUpdate>"; 169 } 170 }; 171 } 172}