com.softslate.commerce.businessobjects.product
Interface ProductCategory

All Superinterfaces:
BusinessObject
All Known Implementing Classes:
ProductCategoryBean

public interface ProductCategory
extends BusinessObject

Interface representing a product within a category in the system.

When the application needs to create an instance that implements ProductCategory, BusinessObjectFactory finds the name of the Java class to instantiate from the "productCategoryImplementer" setting in the appComponents.properties file.

The default "productCategoryImplementer" is ProductCategoryBean.

Why is this a separate entity in the domain model? It was added while integrating Hibernate into the application. Our choices under Hibernate are to: (1) Use a birectional <many-to-many> mapping, which would not require a separate ProductCategory class. In this case the productCategoryOrder field would have to be represented as the index column in a <list> element. We voted this down because we felt making the productCategoryOrder field refer to a strict indexed ordering (no gaps or repetitions) is too restrictive when it comes to managing data imports and updates in the Administrator. (2) We could represent the relationship using a collection of components, ie a <composite-element> element in the Hibernate mapping. But, this requires us to create the ProductCategory class anyway, since the composite-element would have to refer to a real class. (3) Our preference is to define the ProductCategory element as a separate entity, with two many-to-one relationships on either side. The major advantage is it has maximum flexibility in terms of future growth, in case new columns need to be added to the relationship table.

Author:
David Tobey

Method Summary
 Category getCategory()
           
 int getCategoryID()
           
 Product getProduct()
           
 int getProductCategoryID()
           
 int getProductCategoryOrder()
           
 int getProductID()
           
 void setCategory(Category category)
           
 void setCategoryID(int categoryID)
           
 void setProduct(Product product)
           
 void setProductCategoryID(int productCategoryID)
           
 void setProductCategoryOrder(int productCategoryOrder)
           
 void setProductID(int productID)
           
 
Methods inherited from interface com.softslate.commerce.businessobjects.core.BusinessObject
initialize
 

Method Detail

getProductCategoryID

int getProductCategoryID()

setProductCategoryID

void setProductCategoryID(int productCategoryID)

getCategoryID

int getCategoryID()

setCategoryID

void setCategoryID(int categoryID)

getProductID

int getProductID()

setProductID

void setProductID(int productID)

getProductCategoryOrder

int getProductCategoryOrder()

setProductCategoryOrder

void setProductCategoryOrder(int productCategoryOrder)

getProduct

Product getProduct()

setProduct

void setProduct(Product product)

getCategory

Category getCategory()

setCategory

void setCategory(Category category)


Copyright © SoftSlate, LLC 2003–2005