001 002package com.commercetools.api.models.order; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007 008import javax.annotation.Nullable; 009import javax.validation.Valid; 010import javax.validation.constraints.NotNull; 011 012import com.fasterxml.jackson.annotation.*; 013import com.fasterxml.jackson.databind.annotation.*; 014 015import io.vrap.rmf.base.client.utils.Generated; 016 017/** 018 * OrderSearchNumberRangeExpression 019 * 020 * <hr> 021 * Example to create an instance using the builder pattern 022 * <div class=code-example> 023 * <pre><code class='java'> 024 * OrderSearchNumberRangeExpression orderSearchNumberRangeExpression = OrderSearchNumberRangeExpression.builder() 025 * .range(rangeBuilder -> rangeBuilder) 026 * .build() 027 * </code></pre> 028 * </div> 029 */ 030@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 031@JsonDeserialize(as = OrderSearchNumberRangeExpressionImpl.class) 032public interface OrderSearchNumberRangeExpression extends OrderSearchQueryExpression { 033 034 /** 035 * 036 * @return range 037 */ 038 @NotNull 039 @Valid 040 @JsonProperty("range") 041 public OrderSearchNumberRangeValue getRange(); 042 043 /** 044 * set range 045 * @param range value to be set 046 */ 047 048 public void setRange(final OrderSearchNumberRangeValue range); 049 050 /** 051 * factory method 052 * @return instance of OrderSearchNumberRangeExpression 053 */ 054 public static OrderSearchNumberRangeExpression of() { 055 return new OrderSearchNumberRangeExpressionImpl(); 056 } 057 058 /** 059 * factory method to create a shallow copy OrderSearchNumberRangeExpression 060 * @param template instance to be copied 061 * @return copy instance 062 */ 063 public static OrderSearchNumberRangeExpression of(final OrderSearchNumberRangeExpression template) { 064 OrderSearchNumberRangeExpressionImpl instance = new OrderSearchNumberRangeExpressionImpl(); 065 instance.setRange(template.getRange()); 066 return instance; 067 } 068 069 /** 070 * factory method to create a deep copy of OrderSearchNumberRangeExpression 071 * @param template instance to be copied 072 * @return copy instance 073 */ 074 @Nullable 075 public static OrderSearchNumberRangeExpression deepCopy(@Nullable final OrderSearchNumberRangeExpression template) { 076 if (template == null) { 077 return null; 078 } 079 OrderSearchNumberRangeExpressionImpl instance = new OrderSearchNumberRangeExpressionImpl(); 080 instance.setRange(com.commercetools.api.models.order.OrderSearchNumberRangeValue.deepCopy(template.getRange())); 081 return instance; 082 } 083 084 /** 085 * builder factory method for OrderSearchNumberRangeExpression 086 * @return builder 087 */ 088 public static OrderSearchNumberRangeExpressionBuilder builder() { 089 return OrderSearchNumberRangeExpressionBuilder.of(); 090 } 091 092 /** 093 * create builder for OrderSearchNumberRangeExpression instance 094 * @param template instance with prefilled values for the builder 095 * @return builder 096 */ 097 public static OrderSearchNumberRangeExpressionBuilder builder(final OrderSearchNumberRangeExpression template) { 098 return OrderSearchNumberRangeExpressionBuilder.of(template); 099 } 100 101 /** 102 * accessor map function 103 * @param <T> mapped type 104 * @param helper function to map the object 105 * @return mapped value 106 */ 107 default <T> T withOrderSearchNumberRangeExpression(Function<OrderSearchNumberRangeExpression, T> helper) { 108 return helper.apply(this); 109 } 110 111 /** 112 * gives a TypeReference for usage with Jackson DataBind 113 * @return TypeReference 114 */ 115 public static com.fasterxml.jackson.core.type.TypeReference<OrderSearchNumberRangeExpression> typeReference() { 116 return new com.fasterxml.jackson.core.type.TypeReference<OrderSearchNumberRangeExpression>() { 117 @Override 118 public String toString() { 119 return "TypeReference<OrderSearchNumberRangeExpression>"; 120 } 121 }; 122 } 123}