com.softslate.commerce.businessobjects.core
Interface BusinessObjectFactory

All Known Implementing Classes:
BusinessObjectFactoryImpl

public interface BusinessObjectFactory

Interface for the factory class used to create instances of business layer objects, BusinessObjectFactoryImpl. Objects are created with the createObject, createObjectFromClassName, or createUtilsObject methods.

Generally, this class uses its appComponents property to look up the fully-qualified class name of the requested interface (taken from the appComponents.properties file. Then it uses the Java reflection API to create the instance.

An instance of BusinessObjectFactory is created in the Struts layer. Its properties are populated there with the application's DAOFactory, Settings, appComponents, appSettings, and with the User currently accessing the system.

Immediately after instantiating the requested business object, this factory passes its own properties to it so that the newly created object can use them to communicate with the rest of the application.

Author:
David Tobey

Method Summary
 java.lang.Object createObject(java.lang.String type)
          Creates a business object.
 java.lang.Object createObjectFromClassName(java.lang.String className)
          Creates a business object.
 java.lang.Object createUtilsObject(java.lang.String type)
          Given a type corresponding to a key in the appComponents.properties file, creates and returns a utility object corresponding to the key.
 java.util.Properties getAppComponents()
          Retrieves the application components previously set for this factory.
 java.util.Properties getAppSettings()
          Retrieves the application settings previously set for this factory.
 DAOFactory getDaoFactory()
          Retrieves the DAOFactory previously set for this factory.
 Settings getSettings()
          Retrieves the Settings previously set for this factory.
 User getUser()
          Retrieves the User previously set for this factory.
 java.util.Collection invokeMultipleCollectionProcessors(java.lang.String type, java.lang.String method, java.util.Map argument)
          Given a type corresponding to a key in the appComponents.properties file, a method name, and a Map as the argument, loops through all BusinessProcessors configured in appComponents.properties, calling each in turn.
 java.util.Map invokeMultipleProcessors(java.lang.String type, java.lang.String method, java.util.Map argument)
          Given a type corresponding to a key in the appComponents.properties file, a method name, and a Map as the argument, loops through all BusinessProcessors configured in appComponents.properties, calling each in turn.
 void setAppComponents(java.util.Properties appComponents)
          Sets this factory's application components.
 void setAppSettings(java.util.Properties appSettings)
          Sets this factory's application settings.
 void setDaoFactory(DAOFactory daoFactory)
          Sets this factory's DAOFactory.
 void setSettings(Settings settings)
          Sets this factory's Settings instance.
 void setUser(User user)
          Sets this factory's User.
 

Method Detail

getAppSettings

java.util.Properties getAppSettings()
Retrieves the application settings previously set for this factory. The application settings are settings for information unique to a given installation, such as the location of files on the server, as opposed to the Settings, which stores settings drawn from the database.

Returns:
A Properties object that represents various settings for the application.

setAppSettings

void setAppSettings(java.util.Properties appSettings)
Sets this factory's application settings. This factory will pass the application settings to every business object it creates. The application settings are settings for information unique to a given installation, such as the location of files on the server, as opposed to the Settings interface, which stores settings drawn from the database.

Parameters:
appSettings - The current application settings in effect for the system.

getAppComponents

java.util.Properties getAppComponents()
Retrieves the application components previously set for this factory. The components identify which Java class implement the various Interfaces used by the system.

Returns:
A Properties object that represents the components for the application.

setAppComponents

void setAppComponents(java.util.Properties appComponents)
Sets this factory's application components. This factory will pass the application components to every business object it creates. The components identify which Java class implement the various Interfaces used by the system.

Parameters:
appComponents - The current application components in effect for the system.

getUser

User getUser()
Retrieves the User previously set for this factory.

Returns:
A User object that represents the user currently accessing the system.

setUser

void setUser(User user)
Sets this factory's User. This factory will pass the User to every business object it creates.

Parameters:
user - The current User accessing the system, for which business processing is to be performed by business objects created by this factory.

getSettings

Settings getSettings()
Retrieves the Settings previously set for this factory.

Returns:
A Settings object that represents various settings for the system.

setSettings

void setSettings(Settings settings)
Sets this factory's Settings instance. This factory will pass the Settings to every business object it creates.

Parameters:
settings - The current Settings for the system, containing various settings to be used by business objects created by this factory.

getDaoFactory

DAOFactory getDaoFactory()
Retrieves the DAOFactory previously set for this factory.

Returns:
A DAOFactory object that can be used to create data access objects.

setDaoFactory

void setDaoFactory(DAOFactory daoFactory)
Sets this factory's DAOFactory. This factory will pass the DAOFactory to every business object it creates.

Parameters:
daoFactory - The current DAOFactory for the system, which will allow business objects created by this factory to create data access objects.

createObject

java.lang.Object createObject(java.lang.String type)
                              throws java.lang.Exception
Creates a business object.

A lookup is performed first to find the fully-qualified Java class name of the object to create. The type parameter corresponds to a key in the appComponents.properties file. This factory uses its appComponents property to perform the lookup.

If the Java class name is found, an object is created, and then this factory populates it with its own properties. These properties allow the newly create object to communicate with the rest of the application.

Parameters:
type - A String associated with the class name of the business object to be created.
Returns:
An instance of the requested business object, or null, if an error occurs.
Throws:
java.lang.Exception

createObjectFromClassName

java.lang.Object createObjectFromClassName(java.lang.String className)
                                           throws java.lang.Exception
Creates a business object.

Using the className parameter, this factory creates an object, and then populates it with its own properties. These properties allow the newly create object to communicate with the rest of the application.

Parameters:
className - A String associated with the class name of the business object to be created.
Returns:
An instance of the requested business object, or null, if an error occurs.
Throws:
java.lang.Exception

invokeMultipleProcessors

java.util.Map invokeMultipleProcessors(java.lang.String type,
                                       java.lang.String method,
                                       java.util.Map argument)
                                       throws java.lang.Exception
Given a type corresponding to a key in the appComponents.properties file, a method name, and a Map as the argument, loops through all BusinessProcessors configured in appComponents.properties, calling each in turn. Returns a Map compling all the results of each BusinessProcessor called. If any of the BusinessProcessors returns a Map with a key of resultCode that is not equal to "0", processing of all remaining processors is halted, and this method returns immediately.

Parameters:
type - A String such as "activePaymentProcessors" corresponding to a key in the appComponents.properties file.
method - The method of each BusinessProcessor to invoke in turn.
argument - A Map representing the single argument the method accepts.
Returns:
A Map representing all the results of each processor combined. They are combined into a single Map using the Map.putAll() method.
Throws:
java.lang.Exception

invokeMultipleCollectionProcessors

java.util.Collection invokeMultipleCollectionProcessors(java.lang.String type,
                                                        java.lang.String method,
                                                        java.util.Map argument)
                                                        throws java.lang.Exception
Given a type corresponding to a key in the appComponents.properties file, a method name, and a Map as the argument, loops through all BusinessProcessors configured in appComponents.properties, calling each in turn. Returns a Collection compling all the results of each BusinessProcessor called.

Parameters:
type - A String such as "activeShippingProcessors" corresponding to a key in the appComponents.properties file.
method - The method of each BusinessProcessor to invoke in turn. (E.g. "loadShippingOptions")
argument - A Map representing the single argument the method accepts.
Returns:
A Collection representing all the results of each processor combined.
Throws:
java.lang.Exception

createUtilsObject

java.lang.Object createUtilsObject(java.lang.String type)
Given a type corresponding to a key in the appComponents.properties file, creates and returns a utility object corresponding to the key.

If no class can be instantiated for the given class name, an instance of one of the following classes is automatically returned (depending on the value of the type parameter):

Parameters:
type - A String such as "formUtilsImplementer" corresponding to a key in the appComponents.properties file.
Returns:
An instance of the requested business object.


Copyright © SoftSlate, LLC 2003–2005