// Path: jcart-core/src/main/java/com/sivalabs/jcart/catalog/CatalogService.java
// @Service
// @Transactional
// public class CatalogService {
// 	@Autowired CategoryRepository categoryRepository;
// 	@Autowired ProductRepository productRepository;
// 	
// 	public List<Category> getAllCategories() {
// 		
// 		return categoryRepository.findAll();
// 	}
// 	
// 	public List<Product> getAllProducts() {
// 		
// 		return productRepository.findAll();
// 	}
// 
// 	public Category getCategoryByName(String name) {
// 		return categoryRepository.getByName(name);
// 	}
// 	
// 	public Category getCategoryById(Integer id) {
// 		return categoryRepository.findOne(id);
// 	}
// 
// 	public Category createCategory(Category category) {
// 		Category persistedCategory = getCategoryByName(category.getName());
// 		if(persistedCategory != null){
// 			throw new JCartException("Category "+category.getName()+" already exist");
// 		}
// 		return categoryRepository.save(category);
// 	}
// 
// 	public Category updateCategory(Category category) {
// 		Category persistedCategory = getCategoryById(category.getId());
// 		if(persistedCategory == null){
// 			throw new JCartException("Category "+category.getId()+" doesn't exist");
// 		}
// 		persistedCategory.setDescription(category.getDescription());
// 		persistedCategory.setDisplayOrder(category.getDisplayOrder());
// 		persistedCategory.setDisabled(category.isDisabled());
// 		return categoryRepository.save(persistedCategory);
// 	}
// 
// 	public Product getProductById(Integer id) {
// 		return productRepository.findOne(id);
// 	}
// 	
// 	public Product getProductBySku(String sku) {
// 		return productRepository.findBySku(sku);
// 	}
// 	
// 	public Product createProduct(Product product) {
// 		Product persistedProduct = getProductBySku(product.getName());
// 		if(persistedProduct != null){
// 			throw new JCartException("Product SKU "+product.getSku()+" already exist");
// 		}
// 		return productRepository.save(product);
// 	}
// 	
// 	public Product updateProduct(Product product) {
// 		Product persistedProduct = getProductById(product.getId());
// 		if(persistedProduct == null){
// 			throw new JCartException("Product "+product.getId()+" doesn't exist");
// 		}
// 		persistedProduct.setDescription(product.getDescription());
// 		persistedProduct.setDisabled(product.isDisabled());
// 		persistedProduct.setPrice(product.getPrice());
// 		persistedProduct.setCategory(getCategoryById(product.getCategory().getId()));
// 		return productRepository.save(persistedProduct);
// 	}
// 
// 	public List<Product> searchProducts(String query) {
// 		return productRepository.search("%"+query+"%");
// 	}
// }
// 
// Path: jcart-core/src/main/java/com/sivalabs/jcart/entities/Category.java
// @Entity
// @Table(name="categories")
// public class Category
// {
// 	@Id @GeneratedValue(strategy=GenerationType.AUTO)
// 	private Integer id;
// 	@Column(nullable=false, unique=true)
// 	@NotEmpty
// 	private String name;
// 	@Column(length=1024)
// 	private String description;
// 	@Column(name="disp_order")
// 	private Integer displayOrder;
// 	private boolean disabled;
// 	@OneToMany(mappedBy="category")
// 	private Set<Product> products;
// 	
// 	public Integer getId()
// 	{
// 		return id;
// 	}
// 	public void setId(Integer id)
// 	{
// 		this.id = id;
// 	}
// 	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 Integer getDisplayOrder()
// 	{
// 		return displayOrder;
// 	}
// 	public void setDisplayOrder(Integer displayOrder)
// 	{
// 		this.displayOrder = displayOrder;
// 	}
// 	
// 	public boolean isDisabled()
// 	{
// 		return disabled;
// 	}
// 	public void setDisabled(boolean disabled)
// 	{
// 		this.disabled = disabled;
// 	}
// 	public Set<Product> getProducts()
// 	{
// 		return products;
// 	}
// 	public void setProducts(Set<Product> products)
// 	{
// 		this.products = products;
// 	}
// 	
// }


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import com.sivalabs.jcart.catalog.CatalogService;
import com.sivalabs.jcart.entities.Category;
/**
 * 
 */
package com.sivalabs.jcart.admin.web.validators;



/**
 * @author Siva
 *
 */
@Component
public class CategoryValidator implements Validator
{
	@Autowired protected MessageSource messageSource;
// Path: jcart-core/src/main/java/com/sivalabs/jcart/catalog/CatalogService.java
// @Service
// @Transactional
// public class CatalogService {
// 	@Autowired CategoryRepository categoryRepository;
// 	@Autowired ProductRepository productRepository;
// 	
// 	public List<Category> getAllCategories() {
// 		
// 		return categoryRepository.findAll();
// 	}
// 	
// 	public List<Product> getAllProducts() {
// 		
// 		return productRepository.findAll();
// 	}
// 
// 	public Category getCategoryByName(String name) {
// 		return categoryRepository.getByName(name);
// 	}
// 	
// 	public Category getCategoryById(Integer id) {
// 		return categoryRepository.findOne(id);
// 	}
// 
// 	public Category createCategory(Category category) {
// 		Category persistedCategory = getCategoryByName(category.getName());
// 		if(persistedCategory != null){
// 			throw new JCartException("Category "+category.getName()+" already exist");
// 		}
// 		return categoryRepository.save(category);
// 	}
// 
// 	public Category updateCategory(Category category) {
// 		Category persistedCategory = getCategoryById(category.getId());
// 		if(persistedCategory == null){
// 			throw new JCartException("Category "+category.getId()+" doesn't exist");
// 		}
// 		persistedCategory.setDescription(category.getDescription());
// 		persistedCategory.setDisplayOrder(category.getDisplayOrder());
// 		persistedCategory.setDisabled(category.isDisabled());
// 		return categoryRepository.save(persistedCategory);
// 	}
// 
// 	public Product getProductById(Integer id) {
// 		return productRepository.findOne(id);
// 	}
// 	
// 	public Product getProductBySku(String sku) {
// 		return productRepository.findBySku(sku);
// 	}
// 	
// 	public Product createProduct(Product product) {
// 		Product persistedProduct = getProductBySku(product.getName());
// 		if(persistedProduct != null){
// 			throw new JCartException("Product SKU "+product.getSku()+" already exist");
// 		}
// 		return productRepository.save(product);
// 	}
// 	
// 	public Product updateProduct(Product product) {
// 		Product persistedProduct = getProductById(product.getId());
// 		if(persistedProduct == null){
// 			throw new JCartException("Product "+product.getId()+" doesn't exist");
// 		}
// 		persistedProduct.setDescription(product.getDescription());
// 		persistedProduct.setDisabled(product.isDisabled());
// 		persistedProduct.setPrice(product.getPrice());
// 		persistedProduct.setCategory(getCategoryById(product.getCategory().getId()));
// 		return productRepository.save(persistedProduct);
// 	}
// 
// 	public List<Product> searchProducts(String query) {
// 		return productRepository.search("%"+query+"%");
// 	}
// }
// 
// Path: jcart-core/src/main/java/com/sivalabs/jcart/entities/Category.java
// @Entity
// @Table(name="categories")
// public class Category
// {
// 	@Id @GeneratedValue(strategy=GenerationType.AUTO)
// 	private Integer id;
// 	@Column(nullable=false, unique=true)
// 	@NotEmpty
// 	private String name;
// 	@Column(length=1024)
// 	private String description;
// 	@Column(name="disp_order")
// 	private Integer displayOrder;
// 	private boolean disabled;
// 	@OneToMany(mappedBy="category")
// 	private Set<Product> products;
// 	
// 	public Integer getId()
// 	{
// 		return id;
// 	}
// 	public void setId(Integer id)
// 	{
// 		this.id = id;
// 	}
// 	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 Integer getDisplayOrder()
// 	{
// 		return displayOrder;
// 	}
// 	public void setDisplayOrder(Integer displayOrder)
// 	{
// 		this.displayOrder = displayOrder;
// 	}
// 	
// 	public boolean isDisabled()
// 	{
// 		return disabled;
// 	}
// 	public void setDisabled(boolean disabled)
// 	{
// 		this.disabled = disabled;
// 	}
// 	public Set<Product> getProducts()
// 	{
// 		return products;
// 	}
// 	public void setProducts(Set<Product> products)
// 	{
// 		this.products = products;
// 	}
// 	
// }


// Path: jcart-admin/src/main/java/com/sivalabs/jcart/admin/web/validators/CategoryValidator.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import com.sivalabs.jcart.catalog.CatalogService;
import com.sivalabs.jcart.entities.Category;

/**
 * 
 */
package com.sivalabs.jcart.admin.web.validators;



/**
 * @author Siva
 *
 */
@Component
public class CategoryValidator implements Validator
{
	@Autowired protected MessageSource messageSource;
	@Autowired protected CatalogService catalogService;