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
 java.util.Map addProduct(java.util.Map parameters)
           
 java.util.Collection buildMatrix(Product product)
           
 java.util.Map cloneProduct(java.util.Map parameters)
           
 java.util.Map deleteProduct(java.util.Map parameters)
           
 java.util.Map editDeleteProducts(java.util.Map parameters)
           
 java.util.Map 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.
 Product getProductFromSeoCode(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 loadActiveProductNamesCodesIDs()
           
 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 loadCategories(java.lang.String categoryList)
          Retrieves a Collection containing categories corresponding to the codes of the argument.
 java.util.Collection loadCategoryTree()
          Retrieves a Collection representing the store's category tree.
 int loadMaxProductID()
           
 Product loadProductFromID(java.util.Map parameters)
           
 java.util.Map loadProductsAndCount(java.util.Map parameters)
           
 java.util.Collection loadProductsForIndexing(int firstProductID, int lastProductID)
           
 java.util.Collection loadSettings(java.util.Map properties)
           
 java.util.Collection processSettings(java.util.Map properties)
           
 java.util.Map sortProductsByCode(java.util.Map parameters)
           
 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

getProductFromSeoCode

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

Parameters:
product - A Product object whose seoCode 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

loadCategories

java.util.Collection loadCategories(java.lang.String categoryList)
                                    throws java.lang.Exception
Retrieves a Collection containing categories corresponding to the codes of the argument. Each item in the Collection is an instance of Category. This method is used to populate the 'headerCategoriesAndContentPages' and 'footerCategoriesAndContentPages' - the categories that appear as links in the header and footer of the store.

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

loadMaxProductID

int loadMaxProductID()
                     throws java.lang.Exception
Throws:
java.lang.Exception

loadProductsForIndexing

java.util.Collection loadProductsForIndexing(int firstProductID,
                                             int lastProductID)
                                             throws java.lang.Exception
Throws:
java.lang.Exception

loadAllProductNamesCodesIDs

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

loadActiveProductNamesCodesIDs

java.util.Collection loadActiveProductNamesCodesIDs()
                                                    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

java.util.Map 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

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

editDeleteProducts

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

deleteProduct

java.util.Map 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

sortProductsByCode

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

cloneProduct

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


Copyright © SoftSlate, LLC 2003–2005