001
002package com.commercetools.api.models.error;
003
004import java.time.*;
005import java.util.*;
006
007import com.fasterxml.jackson.annotation.JsonCreator;
008import com.fasterxml.jackson.annotation.JsonProperty;
009import com.fasterxml.jackson.databind.annotation.*;
010
011import io.vrap.rmf.base.client.ModelBase;
012import io.vrap.rmf.base.client.utils.Generated;
013
014import org.apache.commons.lang3.builder.EqualsBuilder;
015import org.apache.commons.lang3.builder.HashCodeBuilder;
016
017/**
018 *  <p>Returned when a Product is not assigned to the Product Selection. The error is returned as a failed response either to the Set Variant Selection or to the Set Variant Exclusion update action.</p>
019 */
020@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
021public class GraphQLProductAssignmentMissingErrorImpl implements GraphQLProductAssignmentMissingError, ModelBase {
022
023    private String code;
024
025    private Map<String, java.lang.Object> values;
026
027    private com.commercetools.api.models.product.ProductReference product;
028
029    /**
030     * create instance with all properties
031     */
032    @JsonCreator
033    GraphQLProductAssignmentMissingErrorImpl(@JsonProperty("values") final Map<String, java.lang.Object> values,
034            @JsonProperty("product") final com.commercetools.api.models.product.ProductReference product) {
035        this.values = values;
036        this.product = product;
037        this.code = PRODUCT_ASSIGNMENT_MISSING;
038    }
039
040    /**
041     * create empty instance
042     */
043    public GraphQLProductAssignmentMissingErrorImpl() {
044        this.code = PRODUCT_ASSIGNMENT_MISSING;
045    }
046
047    /**
048     *
049     */
050
051    public String getCode() {
052        return this.code;
053    }
054
055    /**
056     *  <p>Error-specific additional fields.</p>
057     */
058
059    public Map<String, java.lang.Object> values() {
060        return values;
061    }
062
063    /**
064     *  <p>Reference to the Product for which the error was returned.</p>
065     */
066
067    public com.commercetools.api.models.product.ProductReference getProduct() {
068        return this.product;
069    }
070
071    public void setValue(String key, java.lang.Object value) {
072        if (values == null) {
073            values = new HashMap<>();
074        }
075        values.put(key, value);
076    }
077
078    public void setProduct(final com.commercetools.api.models.product.ProductReference product) {
079        this.product = product;
080    }
081
082    @Override
083    public boolean equals(Object o) {
084        if (this == o)
085            return true;
086
087        if (o == null || getClass() != o.getClass())
088            return false;
089
090        GraphQLProductAssignmentMissingErrorImpl that = (GraphQLProductAssignmentMissingErrorImpl) o;
091
092        return new EqualsBuilder().append(code, that.code)
093                .append(values, that.values)
094                .append(product, that.product)
095                .isEquals();
096    }
097
098    @Override
099    public int hashCode() {
100        return new HashCodeBuilder(17, 37).append(code).append(values).append(product).toHashCode();
101    }
102
103}