001
002package com.commercetools.api.models.product;
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 * ProductUpdate
019 */
020@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
021public class ProductUpdateImpl implements ProductUpdate, ModelBase {
022
023    private Long version;
024
025    private java.util.List<com.commercetools.api.models.product.ProductUpdateAction> actions;
026
027    /**
028     * create instance with all properties
029     */
030    @JsonCreator
031    ProductUpdateImpl(@JsonProperty("version") final Long version,
032            @JsonProperty("actions") final java.util.List<com.commercetools.api.models.product.ProductUpdateAction> actions) {
033        this.version = version;
034        this.actions = actions;
035    }
036
037    /**
038     * create empty instance
039     */
040    public ProductUpdateImpl() {
041    }
042
043    /**
044     *  <p>Expected version of the Product on which the changes should be applied. If the expected version does not match the actual version, a 409 Conflict will be returned.</p>
045     */
046
047    public Long getVersion() {
048        return this.version;
049    }
050
051    /**
052     *  <p>Update actions to be performed on the Product.</p>
053     */
054
055    public java.util.List<com.commercetools.api.models.product.ProductUpdateAction> getActions() {
056        return this.actions;
057    }
058
059    public void setVersion(final Long version) {
060        this.version = version;
061    }
062
063    public void setActions(final com.commercetools.api.models.product.ProductUpdateAction... actions) {
064        this.actions = new ArrayList<>(Arrays.asList(actions));
065    }
066
067    public void setActions(final java.util.List<com.commercetools.api.models.product.ProductUpdateAction> actions) {
068        this.actions = actions;
069    }
070
071    @Override
072    public boolean equals(Object o) {
073        if (this == o)
074            return true;
075
076        if (o == null || getClass() != o.getClass())
077            return false;
078
079        ProductUpdateImpl that = (ProductUpdateImpl) o;
080
081        return new EqualsBuilder().append(version, that.version)
082                .append(actions, that.actions)
083                .append(version, that.version)
084                .append(actions, that.actions)
085                .isEquals();
086    }
087
088    @Override
089    public int hashCode() {
090        return new HashCodeBuilder(17, 37).append(version).append(actions).toHashCode();
091    }
092
093}