package com.salesmanager.shop.populator.catalog; import java.util.Set; import com.salesmanager.core.business.exception.ConversionException; import com.salesmanager.core.business.utils.AbstractDataPopulator; import com.salesmanager.core.model.catalog.product.review.ProductReview; import com.salesmanager.core.model.catalog.product.review.ProductReviewDescription; import com.salesmanager.core.model.merchant.MerchantStore; import com.salesmanager.core.model.reference.language.Language; import com.salesmanager.shop.model.catalog.product.ReadableProductReview; import com.salesmanager.shop.model.customer.ReadableCustomer; import com.salesmanager.shop.populator.customer.ReadableCustomerPopulator; import com.salesmanager.shop.utils.DateUtil; public class ReadableProductReviewPopulator extends AbstractDataPopulator<ProductReview, ReadableProductReview> { @Override public ReadableProductReview populate(ProductReview source, ReadableProductReview target, MerchantStore store, Language language) throws ConversionException { try { ReadableCustomerPopulator populator = new ReadableCustomerPopulator(); ReadableCustomer customer = new ReadableCustomer(); populator.populate(source.getCustomer(), customer, store, language); target.setDate(DateUtil.formatDate(source.getReviewDate())); target.setCustomer(customer); target.setRating(source.getReviewRating()); target.setProductId(source.getProduct().getId()); Set<ProductReviewDescription> descriptions = source.getDescriptions(); if(descriptions!=null) { for(ProductReviewDescription description : descriptions) { target.setDescription(description.getDescription()); target.setLanguage(description.getLanguage().getCode()); break; } } return target; } catch (Exception e) { throw new ConversionException("Cannot populate ProductReview", e); } } @Override protected ReadableProductReview createTarget() { return null; } }