/** * Most of the code in the Qalingo project is copyrighted Hoteia and licensed * under the Apache License Version 2.0 (release version 0.8.0) * http://www.apache.org/licenses/LICENSE-2.0 * * Copyright (c) Hoteia, 2012-2014 * http://www.hoteia.com - http://twitter.com/hoteia - contact@hoteia.com * */ package org.hoteia.qalingo.core.pojo.product; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import org.apache.commons.lang.StringUtils; import org.hoteia.qalingo.core.Constants; import org.hoteia.qalingo.core.pojo.AssetPojo; import org.hoteia.qalingo.core.pojo.retailer.RetailerPojo; import org.hoteia.qalingo.core.util.CoreUtil; import com.fasterxml.jackson.annotation.JsonBackReference; public class ProductSkuPojo { private Long id; private int version; private String code; private String ean; private String name; private String description; protected String i18nName; protected String i18nDescription; protected String i18nShortDescription; private Integer width; private Integer height; private Integer length; private Integer weight; private String defaultPackshotImage; private String defaultBackgroundImage; private String defaultIconImage; private String priceWithStandardCurrencySign; private boolean isDefault; private boolean enabledB2B; private boolean enabledB2C; private boolean salableB2B; private boolean salableB2C; private int ranking; private Date dateCreate; private Date dateUpdate; private ProductBrandPojo productBrand; private ProductMarketingPojo productMarketing; private List<ProductSkuAttributePojo> attributes = new ArrayList<ProductSkuAttributePojo>(); private List<ProductSkuOptionDefinitionPojo> optionDefinitions = new ArrayList<ProductSkuOptionDefinitionPojo>(); private List<AssetPojo> assets = new ArrayList<AssetPojo>(); private List<ProductSkuPricePojo> prices = new ArrayList<ProductSkuPricePojo>(); private List<ProductSkuStockPojo> stocks = new ArrayList<ProductSkuStockPojo>(); private List<RetailerPojo> retailers = new ArrayList<RetailerPojo>(); private String detailsUrl; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public int getVersion() { return version; } public void setVersion(int version) { this.version = version; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getEan() { return ean; } public void setEan(String ean) { this.ean = ean; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getI18nName() { if(StringUtils.isNotEmpty(i18nName)){ return i18nName; } return name; } public void setI18nName(String i18nName) { this.i18nName = i18nName; } public String getI18nTruncatedName() { int size = Constants.POJO_NAME_MAX_LENGTH; if (StringUtils.isNotEmpty(getI18nName())){ if(getI18nName().length() >= size){ return CoreUtil.handleTruncatedString(getI18nName(), size); } else { return getI18nName(); } } return ""; } public String getI18nDescription() { if(StringUtils.isNotEmpty(i18nDescription)){ return i18nDescription; } return description; } public void setI18nDescription(String i18nDescription) { this.i18nDescription = i18nDescription; } public String getI18nShortDescription() { return i18nShortDescription; } public void setI18nShortDescription(String i18nShortDescription) { this.i18nShortDescription = i18nShortDescription; } public String getI18nTruncatedDescription() { int size = Constants.POJO_DESCRIPTION_MAX_LENGTH; if(StringUtils.isNotEmpty(getI18nShortDescription())){ if(getI18nShortDescription().length() >= size){ return CoreUtil.handleTruncatedString(getI18nShortDescription(), size); } else { return getI18nShortDescription(); } } else if (StringUtils.isNotEmpty(getI18nDescription())){ if(getI18nDescription().length() >= size){ return CoreUtil.handleTruncatedString(getI18nDescription(), size); } else { return getI18nDescription(); } } return ""; } public Integer getWidth() { return width; } public void setWidth(Integer width) { this.width = width; } public Integer getHeight() { return height; } public void setHeight(Integer height) { this.height = height; } public Integer getLength() { return length; } public void setLength(Integer length) { this.length = length; } public Integer getWeight() { return weight; } public void setWeight(Integer weight) { this.weight = weight; } public String getDefaultPackshotImage() { return defaultPackshotImage; } public void setDefaultPackshotImage(String defaultPackshotImage) { this.defaultPackshotImage = defaultPackshotImage; } public String getDefaultBackgroundImage() { return defaultBackgroundImage; } public void setDefaultBackgroundImage(String defaultBackgroundImage) { this.defaultBackgroundImage = defaultBackgroundImage; } public String getDefaultIconImage() { return defaultIconImage; } public void setDefaultIconImage(String defaultIconImage) { this.defaultIconImage = defaultIconImage; } public String getPriceWithStandardCurrencySign() { return priceWithStandardCurrencySign; } public void setPriceWithStandardCurrencySign(String priceWithStandardCurrencySign) { this.priceWithStandardCurrencySign = priceWithStandardCurrencySign; } public boolean isDefault() { return isDefault; } public void setDefault(boolean aDefault) { isDefault = aDefault; } public boolean isEnabledB2B() { return enabledB2B; } public void setEnabledB2B(boolean enabledB2B) { this.enabledB2B = enabledB2B; } public boolean isEnabledB2C() { return enabledB2C; } public void setEnabledB2C(boolean enabledB2C) { this.enabledB2C = enabledB2C; } public boolean isSalableB2B() { return salableB2B; } public void setSalableB2B(boolean salableB2B) { this.salableB2B = salableB2B; } public boolean isSalableB2C() { return salableB2C; } public void setSalableB2C(boolean salableB2C) { this.salableB2C = salableB2C; } public int getRanking() { return ranking; } public void setRanking(int ranking) { this.ranking = ranking; } public Date getDateCreate() { return dateCreate; } public void setDateCreate(Date dateCreate) { this.dateCreate = dateCreate; } public Date getDateUpdate() { return dateUpdate; } public void setDateUpdate(Date dateUpdate) { this.dateUpdate = dateUpdate; } public ProductBrandPojo getProductBrand(){ if(productBrand == null && productMarketing != null){ return productMarketing.getProductBrand(); } return productBrand; } public void setProductBrand(ProductBrandPojo productBrand) { this.productBrand = productBrand; } @JsonBackReference public ProductMarketingPojo getProductMarketing() { return productMarketing; } public void setProductMarketing(ProductMarketingPojo productMarketing) { this.productMarketing = productMarketing; } public List<ProductSkuAttributePojo> getAttributes() { return attributes; } public void setAttributes(List<ProductSkuAttributePojo> attributes) { this.attributes = attributes; } public List<ProductSkuOptionDefinitionPojo> getOptionDefinitions() { return optionDefinitions; } public void setOptionDefinitions(List<ProductSkuOptionDefinitionPojo> optionDefinitions) { this.optionDefinitions = optionDefinitions; } public List<AssetPojo> getAssets() { return assets; } public String getAssetPath(String type) { for (Iterator<AssetPojo> iterator = assets.iterator(); iterator.hasNext();) { AssetPojo assetViewBean = (AssetPojo) iterator.next(); if (assetViewBean.getType().equals(type)) { return assetViewBean.getPath(); } } return null; } public String getAssetAbsoluteWebPath(String type) { for (Iterator<AssetPojo> iterator = assets.iterator(); iterator.hasNext();) { AssetPojo assetViewBean = (AssetPojo) iterator.next(); if (assetViewBean.getType().equals(type)) { return assetViewBean.getAbsoluteWebPath(); } } return null; } public String getAssetRelativeWebPath(String type) { for (Iterator<AssetPojo> iterator = assets.iterator(); iterator.hasNext();) { AssetPojo assetViewBean = (AssetPojo) iterator.next(); if (assetViewBean.getType().equals(type)) { return assetViewBean.getRelativeWebPath(); } } return null; } public void setAssets(List<AssetPojo> assets) { this.assets = assets; } public List<ProductSkuPricePojo> getPrices() { return prices; } public void setPrices(List<ProductSkuPricePojo> prices) { this.prices = prices; } public List<ProductSkuStockPojo> getStocks() { return stocks; } public void setStocks(List<ProductSkuStockPojo> stocks) { this.stocks = stocks; } public List<RetailerPojo> getRetailers() { return retailers; } public void setRetailers(List<RetailerPojo> retailers) { this.retailers = retailers; } public String getDetailsUrl() { return detailsUrl; } public void setDetailsUrl(String detailsUrl) { this.detailsUrl = detailsUrl; } }