001
002package com.commercetools.api.models.quote_request;
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 QuoteRequest.</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 *     QuoteRequestResourceIdentifier quoteRequestResourceIdentifier = QuoteRequestResourceIdentifier.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 = QuoteRequestResourceIdentifierImpl.class)
030public interface QuoteRequestResourceIdentifier
031        extends ResourceIdentifier, com.commercetools.api.models.Identifiable<QuoteRequest> {
032
033    /**
034     * discriminator value for QuoteRequestResourceIdentifier
035     */
036    String QUOTE_REQUEST = "quote-request";
037
038    /**
039     * factory method
040     * @return instance of QuoteRequestResourceIdentifier
041     */
042    public static QuoteRequestResourceIdentifier of() {
043        return new QuoteRequestResourceIdentifierImpl();
044    }
045
046    /**
047     * factory method to create a shallow copy QuoteRequestResourceIdentifier
048     * @param template instance to be copied
049     * @return copy instance
050     */
051    public static QuoteRequestResourceIdentifier of(final QuoteRequestResourceIdentifier template) {
052        QuoteRequestResourceIdentifierImpl instance = new QuoteRequestResourceIdentifierImpl();
053        instance.setId(template.getId());
054        instance.setKey(template.getKey());
055        return instance;
056    }
057
058    /**
059     * factory method to create a deep copy of QuoteRequestResourceIdentifier
060     * @param template instance to be copied
061     * @return copy instance
062     */
063    @Nullable
064    public static QuoteRequestResourceIdentifier deepCopy(@Nullable final QuoteRequestResourceIdentifier template) {
065        if (template == null) {
066            return null;
067        }
068        QuoteRequestResourceIdentifierImpl instance = new QuoteRequestResourceIdentifierImpl();
069        instance.setId(template.getId());
070        instance.setKey(template.getKey());
071        return instance;
072    }
073
074    /**
075     * builder factory method for QuoteRequestResourceIdentifier
076     * @return builder
077     */
078    public static QuoteRequestResourceIdentifierBuilder builder() {
079        return QuoteRequestResourceIdentifierBuilder.of();
080    }
081
082    /**
083     * create builder for QuoteRequestResourceIdentifier instance
084     * @param template instance with prefilled values for the builder
085     * @return builder
086     */
087    public static QuoteRequestResourceIdentifierBuilder builder(final QuoteRequestResourceIdentifier template) {
088        return QuoteRequestResourceIdentifierBuilder.of(template);
089    }
090
091    /**
092     * accessor map function
093     * @param <T> mapped type
094     * @param helper function to map the object
095     * @return mapped value
096     */
097    default <T> T withQuoteRequestResourceIdentifier(Function<QuoteRequestResourceIdentifier, T> helper) {
098        return helper.apply(this);
099    }
100
101    /**
102     * gives a TypeReference for usage with Jackson DataBind
103     * @return TypeReference
104     */
105    public static com.fasterxml.jackson.core.type.TypeReference<QuoteRequestResourceIdentifier> typeReference() {
106        return new com.fasterxml.jackson.core.type.TypeReference<QuoteRequestResourceIdentifier>() {
107            @Override
108            public String toString() {
109                return "TypeReference<QuoteRequestResourceIdentifier>";
110            }
111        };
112    }
113}