001 002package com.commercetools.api.models.order; 003 004import java.util.*; 005import java.util.function.Function; 006 007import javax.annotation.Nullable; 008 009import io.vrap.rmf.base.client.Builder; 010import io.vrap.rmf.base.client.utils.Generated; 011 012/** 013 * OrderSearchSortingBuilder 014 * <hr> 015 * Example to create an instance using the builder pattern 016 * <div class=code-example> 017 * <pre><code class='java'> 018 * OrderSearchSorting orderSearchSorting = OrderSearchSorting.builder() 019 * .field("{field}") 020 * .build() 021 * </code></pre> 022 * </div> 023 */ 024@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 025public class OrderSearchSortingBuilder implements Builder<OrderSearchSorting> { 026 027 private String field; 028 029 @Nullable 030 private String language; 031 032 @Nullable 033 private com.commercetools.api.models.order.OrderSearchSortOrder order; 034 035 @Nullable 036 private com.commercetools.api.models.order.OrderSearchSortMode mode; 037 038 @Nullable 039 private com.commercetools.api.models.order.OrderSearchQueryExpression filter; 040 041 /** 042 * set the value to the field 043 * @param field value to be set 044 * @return Builder 045 */ 046 047 public OrderSearchSortingBuilder field(final String field) { 048 this.field = field; 049 return this; 050 } 051 052 /** 053 * set the value to the language 054 * @param language value to be set 055 * @return Builder 056 */ 057 058 public OrderSearchSortingBuilder language(@Nullable final String language) { 059 this.language = language; 060 return this; 061 } 062 063 /** 064 * set the value to the order 065 * @param order value to be set 066 * @return Builder 067 */ 068 069 public OrderSearchSortingBuilder order( 070 @Nullable final com.commercetools.api.models.order.OrderSearchSortOrder order) { 071 this.order = order; 072 return this; 073 } 074 075 /** 076 * set the value to the mode 077 * @param mode value to be set 078 * @return Builder 079 */ 080 081 public OrderSearchSortingBuilder mode(@Nullable final com.commercetools.api.models.order.OrderSearchSortMode mode) { 082 this.mode = mode; 083 return this; 084 } 085 086 /** 087 * set the value to the filter using the builder function 088 * @param builder function to build the filter value 089 * @return Builder 090 */ 091 092 public OrderSearchSortingBuilder filter( 093 Function<com.commercetools.api.models.order.OrderSearchQueryExpressionBuilder, com.commercetools.api.models.order.OrderSearchQueryExpressionBuilder> builder) { 094 this.filter = builder.apply(com.commercetools.api.models.order.OrderSearchQueryExpressionBuilder.of()).build(); 095 return this; 096 } 097 098 /** 099 * set the value to the filter using the builder function 100 * @param builder function to build the filter value 101 * @return Builder 102 */ 103 104 public OrderSearchSortingBuilder withFilter( 105 Function<com.commercetools.api.models.order.OrderSearchQueryExpressionBuilder, com.commercetools.api.models.order.OrderSearchQueryExpression> builder) { 106 this.filter = builder.apply(com.commercetools.api.models.order.OrderSearchQueryExpressionBuilder.of()); 107 return this; 108 } 109 110 /** 111 * set the value to the filter 112 * @param filter value to be set 113 * @return Builder 114 */ 115 116 public OrderSearchSortingBuilder filter( 117 @Nullable final com.commercetools.api.models.order.OrderSearchQueryExpression filter) { 118 this.filter = filter; 119 return this; 120 } 121 122 /** 123 * value of field} 124 * @return field 125 */ 126 127 public String getField() { 128 return this.field; 129 } 130 131 /** 132 * value of language} 133 * @return language 134 */ 135 136 @Nullable 137 public String getLanguage() { 138 return this.language; 139 } 140 141 /** 142 * value of order} 143 * @return order 144 */ 145 146 @Nullable 147 public com.commercetools.api.models.order.OrderSearchSortOrder getOrder() { 148 return this.order; 149 } 150 151 /** 152 * value of mode} 153 * @return mode 154 */ 155 156 @Nullable 157 public com.commercetools.api.models.order.OrderSearchSortMode getMode() { 158 return this.mode; 159 } 160 161 /** 162 * value of filter} 163 * @return filter 164 */ 165 166 @Nullable 167 public com.commercetools.api.models.order.OrderSearchQueryExpression getFilter() { 168 return this.filter; 169 } 170 171 /** 172 * builds OrderSearchSorting with checking for non-null required values 173 * @return OrderSearchSorting 174 */ 175 public OrderSearchSorting build() { 176 Objects.requireNonNull(field, OrderSearchSorting.class + ": field is missing"); 177 return new OrderSearchSortingImpl(field, language, order, mode, filter); 178 } 179 180 /** 181 * builds OrderSearchSorting without checking for non-null required values 182 * @return OrderSearchSorting 183 */ 184 public OrderSearchSorting buildUnchecked() { 185 return new OrderSearchSortingImpl(field, language, order, mode, filter); 186 } 187 188 /** 189 * factory method for an instance of OrderSearchSortingBuilder 190 * @return builder 191 */ 192 public static OrderSearchSortingBuilder of() { 193 return new OrderSearchSortingBuilder(); 194 } 195 196 /** 197 * create builder for OrderSearchSorting instance 198 * @param template instance with prefilled values for the builder 199 * @return builder 200 */ 201 public static OrderSearchSortingBuilder of(final OrderSearchSorting template) { 202 OrderSearchSortingBuilder builder = new OrderSearchSortingBuilder(); 203 builder.field = template.getField(); 204 builder.language = template.getLanguage(); 205 builder.order = template.getOrder(); 206 builder.mode = template.getMode(); 207 builder.filter = template.getFilter(); 208 return builder; 209 } 210 211}