// Path: jcart-core/src/main/java/com/sivalabs/jcart/JCartException.java
// public class JCartException extends RuntimeException
// {
// 	private static final long serialVersionUID = 1L;
// 
// 	public JCartException()
// 	{
// 		super();
// 	}
// 
// 	public JCartException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)
// 	{
// 		super(message, cause, enableSuppression, writableStackTrace);
// 	}
// 
// 	public JCartException(String message, Throwable cause)
// 	{
// 		super(message, cause);
// 	}
// 
// 	public JCartException(String message)
// 	{
// 		super(message);
// 	}
// 
// 	public JCartException(Throwable cause)
// 	{
// 		super(cause);
// 	}
// 	
// }
// 
// 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-core/src/main/java/com/sivalabs/jcart/entities/Product.java
// @Entity
// @Table(name="products")
// public class Product implements Serializable
// {
// 	private static final long serialVersionUID = 1L;
// 	@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
// 	@Column(name="id")
// 	private Integer id;
// 	@Column(nullable=false, unique=true)
// 	private String sku;
// 	@Column(nullable=false)
// 	private String name;
// 	private String description;
// 	@Column(nullable=false)
// 	private BigDecimal price = new BigDecimal("0.0");
// 	private String imageUrl;
// 	private boolean disabled;
// 	@Temporal(TemporalType.TIMESTAMP)
// 	@Column(name="created_on")
// 	private Date createdOn = new Date();
// 	
// 	@ManyToOne
// 	@JoinColumn(name="cat_id")
// 	private Category category;
// 	
// 	public Integer getId()
// 	{
// 		return id;
// 	}
// 	public void setId(Integer id)
// 	{
// 		this.id = id;
// 	}
// 	
// 	public String getSku()
// 	{
// 		return sku;
// 	}
// 	public void setSku(String sku)
// 	{
// 		this.sku = sku;
// 	}
// 	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 BigDecimal getPrice()
// 	{
// 		return price;
// 	}
// 	public void setPrice(BigDecimal price)
// 	{
// 		this.price = price;
// 	}
// 	public String getImageUrl()
// 	{
// 		return imageUrl;
// 	}
// 	public void setImageUrl(String imageUrl)
// 	{
// 		this.imageUrl = imageUrl;
// 	}
// 
// 	public boolean isDisabled()
// 	{
// 		return disabled;
// 	}
// 	public void setDisabled(boolean disabled)
// 	{
// 		this.disabled = disabled;
// 	}
// 	public Date getCreatedOn()
// 	{
// 		return createdOn;
// 	}
// 	public void setCreatedOn(Date createdOn)
// 	{
// 		this.createdOn = createdOn;
// 	}
// 	
// 	public Category getCategory()
// 	{
// 		return category;
// 	}
// 	public void setCategory(Category category)
// 	{
// 		this.category = category;
// 	}
// 	
// }


import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.sivalabs.jcart.JCartException;
import com.sivalabs.jcart.entities.Category;
import com.sivalabs.jcart.entities.Product;
/**
 * 
 */
package com.sivalabs.jcart.catalog;




/**
 * @author Siva
 *
 */
@Service
@Transactional
public class CatalogService {
	@Autowired CategoryRepository categoryRepository;
	@Autowired ProductRepository productRepository;
	
// Path: jcart-core/src/main/java/com/sivalabs/jcart/JCartException.java
// public class JCartException extends RuntimeException
// {
// 	private static final long serialVersionUID = 1L;
// 
// 	public JCartException()
// 	{
// 		super();
// 	}
// 
// 	public JCartException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)
// 	{
// 		super(message, cause, enableSuppression, writableStackTrace);
// 	}
// 
// 	public JCartException(String message, Throwable cause)
// 	{
// 		super(message, cause);
// 	}
// 
// 	public JCartException(String message)
// 	{
// 		super(message);
// 	}
// 
// 	public JCartException(Throwable cause)
// 	{
// 		super(cause);
// 	}
// 	
// }
// 
// 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-core/src/main/java/com/sivalabs/jcart/entities/Product.java
// @Entity
// @Table(name="products")
// public class Product implements Serializable
// {
// 	private static final long serialVersionUID = 1L;
// 	@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
// 	@Column(name="id")
// 	private Integer id;
// 	@Column(nullable=false, unique=true)
// 	private String sku;
// 	@Column(nullable=false)
// 	private String name;
// 	private String description;
// 	@Column(nullable=false)
// 	private BigDecimal price = new BigDecimal("0.0");
// 	private String imageUrl;
// 	private boolean disabled;
// 	@Temporal(TemporalType.TIMESTAMP)
// 	@Column(name="created_on")
// 	private Date createdOn = new Date();
// 	
// 	@ManyToOne
// 	@JoinColumn(name="cat_id")
// 	private Category category;
// 	
// 	public Integer getId()
// 	{
// 		return id;
// 	}
// 	public void setId(Integer id)
// 	{
// 		this.id = id;
// 	}
// 	
// 	public String getSku()
// 	{
// 		return sku;
// 	}
// 	public void setSku(String sku)
// 	{
// 		this.sku = sku;
// 	}
// 	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 BigDecimal getPrice()
// 	{
// 		return price;
// 	}
// 	public void setPrice(BigDecimal price)
// 	{
// 		this.price = price;
// 	}
// 	public String getImageUrl()
// 	{
// 		return imageUrl;
// 	}
// 	public void setImageUrl(String imageUrl)
// 	{
// 		this.imageUrl = imageUrl;
// 	}
// 
// 	public boolean isDisabled()
// 	{
// 		return disabled;
// 	}
// 	public void setDisabled(boolean disabled)
// 	{
// 		this.disabled = disabled;
// 	}
// 	public Date getCreatedOn()
// 	{
// 		return createdOn;
// 	}
// 	public void setCreatedOn(Date createdOn)
// 	{
// 		this.createdOn = createdOn;
// 	}
// 	
// 	public Category getCategory()
// 	{
// 		return category;
// 	}
// 	public void setCategory(Category category)
// 	{
// 		this.category = category;
// 	}
// 	
// }


// Path: jcart-core/src/main/java/com/sivalabs/jcart/catalog/CatalogService.java
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.sivalabs.jcart.JCartException;
import com.sivalabs.jcart.entities.Category;
import com.sivalabs.jcart.entities.Product;

/**
 * 
 */
package com.sivalabs.jcart.catalog;




/**
 * @author Siva
 *
 */
@Service
@Transactional
public class CatalogService {
	@Autowired CategoryRepository categoryRepository;
	@Autowired ProductRepository productRepository;
	
	public List<Category> getAllCategories() {