001 002package com.commercetools.importapi.models.orders; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007 008import javax.annotation.Nullable; 009 010import com.fasterxml.jackson.annotation.*; 011import com.fasterxml.jackson.databind.annotation.*; 012 013import io.vrap.rmf.base.client.utils.Generated; 014 015/** 016 * ParcelMeasurements 017 * 018 * <hr> 019 * Example to create an instance using the builder pattern 020 * <div class=code-example> 021 * <pre><code class='java'> 022 * ParcelMeasurements parcelMeasurements = ParcelMeasurements.builder() 023 * .build() 024 * </code></pre> 025 * </div> 026 */ 027@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 028@JsonDeserialize(as = ParcelMeasurementsImpl.class) 029public interface ParcelMeasurements { 030 031 /** 032 * 033 * @return heightInMillimeter 034 */ 035 036 @JsonProperty("heightInMillimeter") 037 public Double getHeightInMillimeter(); 038 039 /** 040 * 041 * @return lengthInMillimeter 042 */ 043 044 @JsonProperty("lengthInMillimeter") 045 public Double getLengthInMillimeter(); 046 047 /** 048 * 049 * @return widthInMillimeter 050 */ 051 052 @JsonProperty("widthInMillimeter") 053 public Double getWidthInMillimeter(); 054 055 /** 056 * 057 * @return weightInGram 058 */ 059 060 @JsonProperty("weightInGram") 061 public Double getWeightInGram(); 062 063 /** 064 * set heightInMillimeter 065 * @param heightInMillimeter value to be set 066 */ 067 068 public void setHeightInMillimeter(final Double heightInMillimeter); 069 070 /** 071 * set lengthInMillimeter 072 * @param lengthInMillimeter value to be set 073 */ 074 075 public void setLengthInMillimeter(final Double lengthInMillimeter); 076 077 /** 078 * set widthInMillimeter 079 * @param widthInMillimeter value to be set 080 */ 081 082 public void setWidthInMillimeter(final Double widthInMillimeter); 083 084 /** 085 * set weightInGram 086 * @param weightInGram value to be set 087 */ 088 089 public void setWeightInGram(final Double weightInGram); 090 091 /** 092 * factory method 093 * @return instance of ParcelMeasurements 094 */ 095 public static ParcelMeasurements of() { 096 return new ParcelMeasurementsImpl(); 097 } 098 099 /** 100 * factory method to create a shallow copy ParcelMeasurements 101 * @param template instance to be copied 102 * @return copy instance 103 */ 104 public static ParcelMeasurements of(final ParcelMeasurements template) { 105 ParcelMeasurementsImpl instance = new ParcelMeasurementsImpl(); 106 instance.setHeightInMillimeter(template.getHeightInMillimeter()); 107 instance.setLengthInMillimeter(template.getLengthInMillimeter()); 108 instance.setWidthInMillimeter(template.getWidthInMillimeter()); 109 instance.setWeightInGram(template.getWeightInGram()); 110 return instance; 111 } 112 113 /** 114 * factory method to create a deep copy of ParcelMeasurements 115 * @param template instance to be copied 116 * @return copy instance 117 */ 118 @Nullable 119 public static ParcelMeasurements deepCopy(@Nullable final ParcelMeasurements template) { 120 if (template == null) { 121 return null; 122 } 123 ParcelMeasurementsImpl instance = new ParcelMeasurementsImpl(); 124 instance.setHeightInMillimeter(template.getHeightInMillimeter()); 125 instance.setLengthInMillimeter(template.getLengthInMillimeter()); 126 instance.setWidthInMillimeter(template.getWidthInMillimeter()); 127 instance.setWeightInGram(template.getWeightInGram()); 128 return instance; 129 } 130 131 /** 132 * builder factory method for ParcelMeasurements 133 * @return builder 134 */ 135 public static ParcelMeasurementsBuilder builder() { 136 return ParcelMeasurementsBuilder.of(); 137 } 138 139 /** 140 * create builder for ParcelMeasurements instance 141 * @param template instance with prefilled values for the builder 142 * @return builder 143 */ 144 public static ParcelMeasurementsBuilder builder(final ParcelMeasurements template) { 145 return ParcelMeasurementsBuilder.of(template); 146 } 147 148 /** 149 * accessor map function 150 * @param <T> mapped type 151 * @param helper function to map the object 152 * @return mapped value 153 */ 154 default <T> T withParcelMeasurements(Function<ParcelMeasurements, T> helper) { 155 return helper.apply(this); 156 } 157 158 /** 159 * gives a TypeReference for usage with Jackson DataBind 160 * @return TypeReference 161 */ 162 public static com.fasterxml.jackson.core.type.TypeReference<ParcelMeasurements> typeReference() { 163 return new com.fasterxml.jackson.core.type.TypeReference<ParcelMeasurements>() { 164 @Override 165 public String toString() { 166 return "TypeReference<ParcelMeasurements>"; 167 } 168 }; 169 } 170}