package com.salesmanager.shop.populator.catalog; import com.salesmanager.core.business.exception.ConversionException; import com.salesmanager.core.business.utils.AbstractDataPopulator; import com.salesmanager.core.model.catalog.category.Category; import com.salesmanager.core.model.catalog.category.CategoryDescription; import com.salesmanager.core.model.merchant.MerchantStore; import com.salesmanager.core.model.reference.language.Language; import com.salesmanager.shop.model.catalog.category.ReadableCategory; public class ReadableCategoryPopulator extends AbstractDataPopulator<Category, ReadableCategory> { @Override public ReadableCategory populate(Category source, ReadableCategory target, MerchantStore store, Language language) throws ConversionException { target.setLineage(source.getLineage()); if(source.getDescriptions()!=null && source.getDescriptions().size()>0) { CategoryDescription description = source.getDescription(); if(source.getDescriptions().size()>1) { for(CategoryDescription desc : source.getDescriptions()) { if(desc.getLanguage().getCode().equals(language.getCode())) { description = desc; break; } } } if(description!=null) { com.salesmanager.shop.model.catalog.category.CategoryDescription desc = new com.salesmanager.shop.model.catalog.category.CategoryDescription(); desc.setFriendlyUrl(description.getSeUrl()); desc.setName(description.getName()); desc.setDescription(description.getName()); desc.setKeyWords(description.getMetatagKeywords()); desc.setHighlights(description.getCategoryHighlight()); desc.setTitle(description.getMetatagTitle()); desc.setMetaDescription(description.getMetatagDescription()); target.setDescription(desc); } } if(source.getParent()!=null) { com.salesmanager.shop.model.catalog.category.Category parent = new com.salesmanager.shop.model.catalog.category.Category(); parent.setCode(source.getParent().getCode()); parent.setId(source.getParent().getId()); target.setParent(parent); } target.setCode(source.getCode()); target.setId(source.getId()); target.setDepth(source.getDepth()); target.setSortOrder(source.getSortOrder()); target.setVisible(source.isVisible()); return target; } @Override protected ReadableCategory createTarget() { return null; } }