com.softslate.commerce.businessobjects.product
Interface ProductProcessor

All Superinterfaces:
BusinessObject
All Known Implementing Classes:
BasicProductProcessor

public interface ProductProcessor
extends BusinessObject

Interface for business logic methods affecting products and other related objects.

Instances implementing ProductProcessor are usually created in the Struts layer in response to a request from a user for product information. The ProductProcessor object uses data access objects to look up the information, and return it to the Struts layer.

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

The default "productProcessorImplementer" is BasicProductProcessor.

Author:
David Tobey

Method Summary
 void addProduct(java.util.Map parameters)
           
 java.util.Collection buildMatrix(Product product)
           
 void deleteProduct(java.util.Map parameters)
           
 void editDeleteProducts(java.util.Map parameters)
           
 void editProduct(java.util.Map parameters)
           
 java.util.HashMap generateSettingsMap(java.util.Collection settings)
           
 java.util.Collection getAllAttributesAndOptions(int productID)
           
 Category getCategoryFromCode(Category category)
          Retrieves category information from the database.
 Category getCategoryFromCode(Category category, boolean loadProducts)
          Retrieves category information from the database.
 Product getProductFromCode(Product product)
          Retrieves product information from the database.
 ProductList getProductList(ProductList productList)
          Retrieves information for a list of products from the database.
 java.util.Collection loadAllProductNamesCodesIDs()
           
 java.util.Collection loadAllProducts()
           
 java.util.Collection loadAttributeSKUCollection()
          Retrieves all SKUs associated with attributes but not products, as a Collection of SKUs.
 java.util.Map loadAttributeSKUs()
          Retrieves all SKUs associated with attributes but not products.
 java.util.Collection loadBuiltInCategories()
          Retrieves a Collection containing built-in categories for the store.
 java.util.Collection loadCategoryTree()
          Retrieves a Collection representing the store's category tree.
 Product loadProductFromID(java.util.Map parameters)
           
 java.util.Map loadProductsAndCount(java.util.Map parameters)
           
 java.util.Collection loadSettings(java.util.Map properties)
           
 java.util.Collection processSettings(java.util.Map properties)
           
 java.util.Map sortProductsByName(java.util.Map parameters)
           
 
Methods inherited from interface com.softslate.commerce.businessobjects.core.BusinessObject
initialize
 

Method Detail

getProductFromCode

Product getProductFromCode(Product product)
                           throws java.lang.Exception
Retrieves product information from the database. In the default implementation, this method calls ProductDAO.loadProduct() to populate the incoming Product using its code.

Parameters:
product - A Product object whose code property has been populated.
Returns:
A Product object with all its properties populated from the database. If the product does not exist in the database, null.
Throws:
java.lang.Exception

loadAttributeSKUs

java.util.Map loadAttributeSKUs()
                                throws java.lang.Exception
Retrieves all SKUs associated with attributes but not products.

Returns:
A Map of all the SKUs in the system associated with attributes but not products.
Throws:
java.lang.Exception

loadAttributeSKUCollection

java.util.Collection loadAttributeSKUCollection()
                                                throws java.lang.Exception
Retrieves all SKUs associated with attributes but not products, as a Collection of SKUs.

Returns:
A Collection of all the SKUs in the system associated with attributes but not products.
Throws:
java.lang.Exception

getCategoryFromCode

Category getCategoryFromCode(Category category)
                             throws java.lang.Exception
Retrieves category information from the database. In the default implementation, this method calls getCategoryFromCode(Category category, boolean loadProducts) with the loadProducts parameter set to true. category tree.

Parameters:
category - A Category object whose code property has been populated.
Returns:
A Category object with all its properties populated from the database. If the category does not exist in the database, null.
Throws:
java.lang.Exception

getCategoryFromCode

Category getCategoryFromCode(Category category,
                             boolean loadProducts)
                             throws java.lang.Exception
Retrieves category information from the database. In the default implementation, this method calls CategoryDAO.loadCategory() to populate the incoming Category using its code.

If the loadProducts parameter is set to true, in addition to all of the category's regular properties, its productListCollection is populated with just those Products falling on the current page being displayed. The paging parameters for the number of items to display and which page to display come from the incoming Category's itemsPerPage and firstRow properties, respectively.

The method ProductGatewayDAO.loadProductList(ProductList) is used to pull in the category's products.

Also in the default implementation, the Category's parentCollection and parentString properties are set by calling CategoryDAO.loadParents(). These properties are used in breadcrumbing and in the display of the category tree.

Parameters:
category - A Category object whose code property has been populated.
loadProducts - If set to true, the category's products will be loaded into the category's productListCollection property.
Returns:
A Category object with all its properties populated from the database. If the category does not exist in the database, null.
Throws:
java.lang.Exception

loadCategoryTree

java.util.Collection loadCategoryTree()
                                      throws java.lang.Exception
Retrieves a Collection representing the store's category tree. Each item in the Collection is an instance of Category, which corresponds to each one of the "top level" categories defined in the store (i.e., categories whose parentCategory property is null). To render the tree, iterate through the top level categories and recursively navigate through each of their subcategoryCollections in turn.

The default implementation of this method calls ProductGatewayDAOHibernate.loadCategoryTree(), which uses Hibernate.initialize(java.lang.Object) to pull the entire tree from the database non-lazily.

Returns:
A Collection representing the store's category tree.
Throws:
java.lang.Exception

loadBuiltInCategories

java.util.Collection loadBuiltInCategories()
                                           throws java.lang.Exception
Retrieves a Collection containing built-in categories for the store. Each item in the Collection is an instance of Category. Built-in categories are typically composed of specials or other featured products that need to displayed on arbitrary pages thoughout the store.

Built-in categories are definined by the "builtInCategories" setting in the sscSetting database table, a comma-separated list of category codes.

Returns:
A Collection of Category objects representing the store's built-in categories.
Throws:
java.lang.Exception

getProductList

ProductList getProductList(ProductList productList)
                           throws java.lang.Exception
Retrieves information for a list of products from the database. Depending on the value of the productListType for the ProductList, the products could be the entire list of products in the system, the products under a given category, or the products matching a given search request.

Parameters:
productList - A ProductList object whose itemsPerPage,firstCode, productListType, and optionally categoryID or searchString and stopWords properties have been set.
Returns:
A ProductList object with all its properties populated from the database.
Throws:
java.lang.Exception

loadAllProducts

java.util.Collection loadAllProducts()
                                     throws java.lang.Exception
Throws:
java.lang.Exception

loadAllProductNamesCodesIDs

java.util.Collection loadAllProductNamesCodesIDs()
                                                 throws java.lang.Exception
Throws:
java.lang.Exception

loadProductsAndCount

java.util.Map loadProductsAndCount(java.util.Map parameters)
                                   throws java.lang.Exception
Throws:
java.lang.Exception

addProduct

void addProduct(java.util.Map parameters)
                throws java.lang.Exception
Throws:
java.lang.Exception

loadProductFromID

Product loadProductFromID(java.util.Map parameters)
                          throws java.lang.Exception
Throws:
java.lang.Exception

editProduct

void editProduct(java.util.Map parameters)
                 throws java.lang.Exception
Throws:
java.lang.Exception

editDeleteProducts

void editDeleteProducts(java.util.Map parameters)
                        throws java.lang.Exception
Throws:
java.lang.Exception

deleteProduct

void deleteProduct(java.util.Map parameters)
                   throws java.lang.Exception
Throws:
java.lang.Exception

generateSettingsMap

java.util.HashMap generateSettingsMap(java.util.Collection settings)
                                      throws java.lang.Exception
Throws:
java.lang.Exception

getAllAttributesAndOptions

java.util.Collection getAllAttributesAndOptions(int productID)
                                                throws java.lang.Exception
Throws:
java.lang.Exception

loadSettings

java.util.Collection loadSettings(java.util.Map properties)
                                  throws java.lang.Exception
Throws:
java.lang.Exception

processSettings

java.util.Collection processSettings(java.util.Map properties)
                                     throws java.lang.Exception
Throws:
java.lang.Exception

buildMatrix

java.util.Collection buildMatrix(Product product)

sortProductsByName

java.util.Map sortProductsByName(java.util.Map parameters)
                                 throws java.lang.Exception
Throws:
java.lang.Exception


Copyright ? SoftSlate, LLC 2003?2005