package com.salesmanager.core.business.services.catalog.product.attribute; import java.util.List; import javax.inject.Inject; import org.springframework.stereotype.Service; import com.salesmanager.core.business.exception.ServiceException; import com.salesmanager.core.business.repositories.catalog.product.attribute.ProductAttributeRepository; import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl; import com.salesmanager.core.model.catalog.product.Product; import com.salesmanager.core.model.catalog.product.attribute.ProductAttribute; import com.salesmanager.core.model.merchant.MerchantStore; import com.salesmanager.core.model.reference.language.Language; @Service("productAttributeService") public class ProductAttributeServiceImpl extends SalesManagerEntityServiceImpl<Long, ProductAttribute> implements ProductAttributeService { private ProductAttributeRepository productAttributeRepository; @Inject public ProductAttributeServiceImpl(ProductAttributeRepository productAttributeRepository) { super(productAttributeRepository); this.productAttributeRepository = productAttributeRepository; } @Override public ProductAttribute getById(Long id) { return productAttributeRepository.findOne(id); } @Override public List<ProductAttribute> getByOptionId(MerchantStore store, Long id) throws ServiceException { return productAttributeRepository.findByOptionId(store.getId(), id); } @Override public List<ProductAttribute> getByAttributeIds(MerchantStore store, Product product, List<Long> ids) throws ServiceException { return productAttributeRepository.findByAttributeIds(store.getId(), product.getId(), ids); } @Override public List<ProductAttribute> getByOptionValueId(MerchantStore store, Long id) throws ServiceException { return productAttributeRepository.findByOptionValueId(store.getId(), id); } /** * Returns all product attributes */ @Override public List<ProductAttribute> getByProductId(MerchantStore store, Product product, Language language) throws ServiceException { return productAttributeRepository.findByProductId(store.getId(), product.getId(), language.getId()); } @Override public void saveOrUpdate(ProductAttribute productAttribute) throws ServiceException { //if(productAttribute.getId()!=null && productAttribute.getId()>0) { // productAttributeRepository.update(productAttribute); //} else { productAttributeRepository.save(productAttribute); //} } @Override public void delete(ProductAttribute attribute) throws ServiceException { //override method, this allows the error that we try to remove a detached instance attribute = this.getById(attribute.getId()); super.delete(attribute); } }