001 002package com.commercetools.api.models.product_selection; 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>Excludes a Product from a Product Selection with <code>IndividualExclusion</code> ProductSelectionMode.</p> 019 * <p>If the specified Product is already assigned to the Product Selection, but the existing Product Selection has a different Product Variant Exclusion, a ProductPresentWithDifferentVariantSelection error is returned.</p> 020 */ 021@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 022public class ProductSelectionExcludeProductActionImpl implements ProductSelectionExcludeProductAction, ModelBase { 023 024 private String action; 025 026 private com.commercetools.api.models.product.ProductResourceIdentifier product; 027 028 private com.commercetools.api.models.product_selection.ProductVariantExclusion variantExclusion; 029 030 /** 031 * create instance with all properties 032 */ 033 @JsonCreator 034 ProductSelectionExcludeProductActionImpl( 035 @JsonProperty("product") final com.commercetools.api.models.product.ProductResourceIdentifier product, 036 @JsonProperty("variantExclusion") final com.commercetools.api.models.product_selection.ProductVariantExclusion variantExclusion) { 037 this.product = product; 038 this.variantExclusion = variantExclusion; 039 this.action = EXCLUDE_PRODUCT; 040 } 041 042 /** 043 * create empty instance 044 */ 045 public ProductSelectionExcludeProductActionImpl() { 046 this.action = EXCLUDE_PRODUCT; 047 } 048 049 /** 050 * 051 */ 052 053 public String getAction() { 054 return this.action; 055 } 056 057 /** 058 * <p>ResourceIdentifier of the Product</p> 059 */ 060 061 public com.commercetools.api.models.product.ProductResourceIdentifier getProduct() { 062 return this.product; 063 } 064 065 /** 066 * <p>Defines which Variants of the Product will be excluded from the Product Selection. If not supplied all Variants are deemed to be excluded.</p> 067 */ 068 069 public com.commercetools.api.models.product_selection.ProductVariantExclusion getVariantExclusion() { 070 return this.variantExclusion; 071 } 072 073 public void setProduct(final com.commercetools.api.models.product.ProductResourceIdentifier product) { 074 this.product = product; 075 } 076 077 public void setVariantExclusion( 078 final com.commercetools.api.models.product_selection.ProductVariantExclusion variantExclusion) { 079 this.variantExclusion = variantExclusion; 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 ProductSelectionExcludeProductActionImpl that = (ProductSelectionExcludeProductActionImpl) o; 091 092 return new EqualsBuilder().append(action, that.action) 093 .append(product, that.product) 094 .append(variantExclusion, that.variantExclusion) 095 .append(action, that.action) 096 .append(product, that.product) 097 .append(variantExclusion, that.variantExclusion) 098 .isEquals(); 099 } 100 101 @Override 102 public int hashCode() { 103 return new HashCodeBuilder(17, 37).append(action).append(product).append(variantExclusion).toHashCode(); 104 } 105 106}