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