com.ibm.commerce.price.commands
Class SelectContractPricesCmdImpl

java.lang.Object
  |
  +--CacheableCommandImpl
        |
        +--com.ibm.commerce.command.AbstractECTargetableCommand
              |
              +--com.ibm.commerce.command.TaskCommandImpl
                    |
                    +--com.ibm.commerce.price.commands.SelectContractPricesCmdImpl
All Implemented Interfaces:
ECCommand, ECTargetableCommand, SelectContractPricesCmd, TaskCommand

public class SelectContractPricesCmdImpl
extends TaskCommandImpl
implements SelectContractPricesCmd

This SelectContractPricesCmd Task Command Implementation selects the best offer among all the qualified offers for the input catalog entry.

If the command is successful retrieving the price, it will return the best price, the offer id and access bean, the T&C id and the trading agreement id that determined the price.

If unsuccessful, the command throws the ECApplicationException specifying an Error Message (ERR_RETRIEVE_PRICE), an Error Code (ERR_CODE_NO_PRICE) and the Error View (RetrievePriceErrorView).

Behaviour The best offer will be selected based on the following criteria:

Exception Conditions

If ErrorMode is false, these errors will be ignored and a null value price will be passed back to the caller.

This command calls the following TaskCommands:

This command uses the following AccessBeans:
See Also:
Serialized Form

Field Summary
static java.lang.String CLASS_NAME
          the class name.
static java.lang.String COPYRIGHT
          IBM copyright notice field.
 
Fields inherited from class com.ibm.commerce.command. AbstractECTargetableCommand
commandContext
 
Fields inherited from interface com.ibm.commerce.price.commands. SelectContractPricesCmd
defaultCommandClassName, NAME
 
Fields inherited from interface com.ibm.commerce.command. ECCommand
defaultCommandClassName
 
Constructor Summary
SelectContractPricesCmdImpl()
          Constructor.
 
Method Summary
protected   QualifyingOfferInfo findBestOffer(java.util.Hashtable aOfferInfoHash, ItemPriceInfo aItemPriceInfo)
          Finds the best offer for a catalog entry.
  ItemPriceInfo[] getItemPriceInfo()
          Returns the internal item info structure.
 void performExecute()
          Executes main business logic of the command.
protected  void selectOffer()
          Selects the best offer for a catalog entry.
protected  void selectTradingOffers()
          Selects the best offer for a catalog entry for each trading agreement.
 void setCurrency(java.lang.String astrCurrency)
          Sets the currency to be used for finding the price (Optional).
 void setErrorMode(boolean aErrorMode)
          Sets the flag to indicate if exception will be thrown when the price cannot be found for the input catentry (Optional).
 void setItemPriceInfo( ItemPriceInfo[] aItemPriceInfo)
          Sets the item info structure for internal use on calculating the prices.
 void setStoreId(java.lang.Integer aStoreId)
          Sets the id of the input store to be used for calculating the price (Optional).
 void validateParameters()
          Checks mandatory parameters.
 
Methods inherited from class com.ibm.commerce.command. AbstractECTargetableCommand
accessControlCheck, checkIsAllowed, checkParameters, checkResourcePermission, createCommandExecutionEvent, execute, finalize, getAccCheck, getCommandContext, getCommandIfName, getCommandName, getCommandStoreId, getDefaultProperties, getResources, getStoreId, getUser, getUserId, isReadyToCallExecute, reset, setAccCheck, setCommandContext, setCommandIfName, setCommandStoreId, setDefaultProperties
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail
public static final java.lang.String COPYRIGHT
IBM copyright notice field.
See Also:
Constant Field Values

CLASS_NAME

public static final java.lang.String CLASS_NAME
the class name.
See Also:
Constant Field Values
Constructor Detail

SelectContractPricesCmdImpl

public SelectContractPricesCmdImpl()
Constructor.
Method Detail

findBestOffer

protected QualifyingOfferInfo findBestOffer(java.util.Hashtable aOfferInfoHash,
ItemPriceInfo aItemPriceInfo)
                                     throws ECException
Finds the best offer for a catalog entry.
Parameters:
aOfferInfoHash - the list of offers for selection.
aItemPriceInfo - the item price info.
Returns:
The best qualified offer.
Throws:
ECException

getItemPriceInfo

public ItemPriceInfo[] getItemPriceInfo()
Returns the internal item info structure.
Specified by:
getItemPriceInfo in interface SelectContractPricesCmd
Returns:
ItemPriceInfo[] the internal structure

performExecute

public void performExecute()
                    throws ECException
Executes main business logic of the command.
Specified by:
performExecute in interface ECCommand
Overrides:
performExecute in class AbstractECTargetableCommand
Throws:
ECException

selectOffer

protected void selectOffer()
                    throws ECException
Selects the best offer for a catalog entry.
Throws:
ECException

selectTradingOffers

protected void selectTradingOffers()
                            throws ECException
Selects the best offer for a catalog entry for each trading agreement.
Throws:
ECException

setCurrency

public void setCurrency(java.lang.String astrCurrency)
Sets the currency to be used for finding the price (Optional).
Specified by:
setCurrency in interface SelectContractPricesCmd
Parameters:
astrCurrency - the currency

setErrorMode

public void setErrorMode(boolean aErrorMode)
Sets the flag to indicate if exception will be thrown when the price cannot be found for the input catentry (Optional).
Specified by:
setErrorMode in interface SelectContractPricesCmd
Parameters:
aErrorMode - the error mode

setItemPriceInfo

public void setItemPriceInfo(ItemPriceInfo[] aItemPriceInfo)
Sets the item info structure for internal use on calculating the prices.
Specified by:
setItemPriceInfo in interface SelectContractPricesCmd
Parameters:
aItemPriceInfo - the internal data struture

setStoreId

public void setStoreId(java.lang.Integer aStoreId)
Sets the id of the input store to be used for calculating the price (Optional).
Specified by:
setStoreId in interface SelectContractPricesCmd
Parameters:
aStoreId - the store ID

validateParameters

public void validateParameters()
                        throws ECException
Checks mandatory parameters.
Specified by:
validateParameters in interface ECCommand
Overrides:
validateParameters in class AbstractECTargetableCommand
Throws:
ECException