com.ibm.commerce.price.utils
Class CurrencyManager
java.lang.Object
com.ibm.commerce.price.utils.UnitManager
com.ibm.commerce.price.utils.CurrencyManager
- All Implemented Interfaces:
- Registry
- public class CurrencyManager
- extends UnitManager
Currency manager. This singleton object allows you to retrieve many types of currency information for a store. To retrieve an instance of the CurrencyManager, use the getInstance() method.
Constructor Summary |
protected |
CurrencyManager()
CurrencyManager constructor. |
Method Summary |
MonetaryAmount |
convert(MonetaryAmount aMonetaryAmount, StoreAccessBean aStoreAccessBean, java.lang.String toCurrency)
Convert a monetary amount to a new currency. |
protected java.lang.String |
getClassName()
Get the class name. |
protected java.lang.String |
getConverionRelationshipType()
Gets the currency conversion relationship type. |
java.lang.String[] |
getCounterCurrencies(StoreAccessBean aStoreAccessBean, java.lang.String aCurrency)
Get the counter currencies that apply, to a particular currency, in the correct order. |
java.lang.String[] |
getCounterCurrenciesForStore(StoreAccessBean aStoreAccessBean, java.lang.String aCurrency)
Get the counter currencies that apply, to a particular currency, in the correct order. |
MonetaryAmount[] |
getCounterValues(StoreAccessBean aStoreAccessBean, MonetaryAmount aMonetaryAmount)
Get the list of counter values in the appropriate order. |
java.lang.String |
getCurrency(StoreAccessBean aStoreAccessBean, java.lang.String aPreferredCurrency, java.lang.Integer aLanguageId)
Calculate the negotiated shopping currency for the specified store based on the user's preferred currency. |
java.math.BigDecimal |
getCustomizedRoundingMultiple(StoreAccessBean aStoreAccessBean, java.lang.String aUnit)
Gets the unit to which rounding occurs. |
java.math.BigDecimal |
getCustomizedRoundingMultiple(StoreAccessBean aStoreAccessBean, java.lang.String aUnit, java.lang.String aNumberUsage)
Gets the unit to which rounding occurs. |
java.lang.String |
getCustomizedString(StoreAccessBean aStoreAccessBean, java.lang.String aCurrency, java.lang.Integer aLanguageId)
Get the customized string from the format table. |
java.lang.String |
getDefaultCurrency(StoreAccessBean aStoreAccessBean)
Get the store level default currency for a particular store. |
java.lang.String |
getDefaultCurrency(StoreAccessBean aStoreAccessBean, java.lang.Integer aLanguageId)
Get the default currency for a particular store and language Id. |
java.lang.String |
getDescription(StoreAccessBean aStoreAccessBean, java.lang.String aCurrency, java.lang.Integer aLanguageId)
Get the description of the specified currency. |
protected java.lang.String |
getFormatRelationshipType()
Gets the currency format relationship type. |
FormattedMonetaryAmount |
getFormattedMonetaryAmount(MonetaryAmount aMonetaryAmount, StoreAccessBean aStoreAccessBean, java.lang.Integer aLanguageId)
Get a formatted monetary amount for display purposes based on the formatting rules defined in the database. |
FormattedMonetaryAmount |
getFormattedMonetaryAmount(MonetaryAmount aMonetaryAmount, StoreAccessBean aStoreAccessBean, java.lang.Integer aLanguageId, java.lang.String aNumberUsage)
Get a formatted monetary amount for display purposes based on the formatting rules defined in the database. |
static CurrencyManager |
getInstance()
Get the instance of the currency manager. |
java.math.BigDecimal |
getMinApproveAmount(StoreAccessBean aStoreAB, java.lang.String aCurrency)
Get the minimum approved amount. |
java.math.BigDecimal |
getMinApproveAmount(StoreAccessBean aStoreAB, java.lang.String aCurrency, java.lang.String aNumberUsage)
Get the minimum approved amount. |
java.math.BigDecimal |
getRoundingMultiple(StoreAccessBean aStoreAccessBean, java.lang.String aUnit)
Gets the unit to which rounding occurs. |
java.math.BigDecimal |
getRoundingMultiple(StoreAccessBean aStoreAccessBean, java.lang.String aUnit, java.lang.String aNumberUsage)
Gets the unit to which rounding occurs. |
protected java.lang.Integer |
getStoreIdForConverter(StoreAccessBean aStoreAccessBean)
Get the store Id to use for converters. |
java.lang.String[] |
getSupportedCurrencies(StoreAccessBean aStoreAB)
Get a list of the currencies supported by a store. |
java.lang.String |
getSymbol(StoreAccessBean aStoreAccessBean, java.lang.String aCurrency, java.lang.Integer aLanguageId)
Get the currency symbol information from the currency format table. |
void |
initialize()
Used by the registry manager to initialize the currency manager. |
boolean |
isSupportedCurrency(StoreAccessBean aStoreAccessBean, java.lang.String aCurrency)
Checks to see if a currency is supported in a store. |
java.math.BigDecimal |
parsePositiveAmount(java.lang.String anAmount, java.lang.String theUnit, StoreAccessBean aStoreAccessBean, java.lang.Integer aLanguageId, java.lang.String aNumberUsage)
Parses a string (representing a positive number) based on the formatting rules defined in the database. |
protected void |
refreshExtension(Formatters theTempFormatters)
Pass all NumberFormat objects to the tools runtime. |
protected void |
refreshOthers(Converters aConverters)
Refresh other containers not handles by the parent class. |
void |
round(MonetaryAmount aMonetaryAmount, StoreAccessBean aStoreAccessBean)
Round the monetary amount to the appropriate number of decimal places. |
void |
round(MonetaryAmount aMonetaryAmount, StoreAccessBean aStoreAccessBean, java.lang.String aNumberUsage)
Round the monetary amount to the appropriate number of decimal places. |
void |
roundCustomized(MonetaryAmount aMonetaryAmount, StoreAccessBean aStoreAccessBean)
Perform customized rounding to the correct number of decimal places. |
void |
roundCustomized(MonetaryAmount aMonetaryAmount, StoreAccessBean aStoreAccessBean, java.lang.String aNumberUsage)
Perform customized rounding to the correct number of decimal places. |
Methods inherited from class com.ibm.commerce.price.utils.UnitManager |
checkStoreGroupConverter, convert, getConversionStorePath, getConverter, getConverters, getCustomizedRoundingMultipleBD, getCustomizedRoundingMultipleBD, getCustomizedRoundingMultipleD, getCustomizedRoundingMultipleD, getCustomizedRoundMethod, getCustomizedRoundMethod, getCustomizedString, getCustomizedString, getDescription, getDescription, getFormatDescription, getFormattedUnitAmount, getFormattedUnitAmount, getFormatter, getParticularConverter, getRoundingMultipleBD, getRoundingMultipleBD, getRoundingMultipleD, getRoundingMultipleD, getStoreAB, getStorePath, getSymbol, getSymbol, parsePositiveUnitAmount, parsePositiveUnitAmount, refresh, refreshCache, resolveNumberUsageId, round, round, roundCustomized, roundCustomized |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CurrencyManager
protected CurrencyManager()
throws ECSystemException
- CurrencyManager constructor.
getConverionRelationshipType
protected java.lang.String getConverionRelationshipType()
- Gets the currency conversion relationship type.
-
- Specified by:
- getConverionRelationshipType in class UnitManager
-
- Returns:
- The currency conversion relationship type.
getFormatRelationshipType
protected java.lang.String getFormatRelationshipType()
- Gets the currency format relationship type.
-
- Specified by:
- getFormatRelationshipType in class UnitManager
-
- Returns:
- The currency format relationship type.
convert
public MonetaryAmount convert(MonetaryAmount aMonetaryAmount,
StoreAccessBean aStoreAccessBean,
java.lang.String toCurrency)
throws ECSystemException
- Convert a monetary amount to a new currency. If a conversion cannot be found in the specified store then a conversion will be searched for along the store path for the relationship type com.ibm.commerce.currency.conversion.
-
- Parameters:
- aMonetaryAmount - a monetary amount to be converted.
- aStoreAccessBean - the store to use to choose the appropriate conversion rules.
- toCurrency - the currency to convert to.
- Returns:
- the new monetary amount in the target currency. If there is no conversion then null is returned.
- Throws:
- ECSystemException
getClassName
protected java.lang.String getClassName()
- Description copied from class: UnitManager
- Get the class name.
-
- Specified by:
- getClassName in class UnitManager
-
- Returns:
- The name of the class.
getCounterCurrenciesForStore
public java.lang.String[] getCounterCurrenciesForStore(StoreAccessBean aStoreAccessBean,
java.lang.String aCurrency)
throws ECSystemException
- Get the counter currencies that apply, to a particular currency, in the correct order.
-
- Parameters:
- aStoreAccessBean - a store.
- aCurrency - the currency.
- Returns:
- an array of counter currencies in the correct order.
- Throws:
- ECSystemException
getCounterCurrencies
public java.lang.String[] getCounterCurrencies(StoreAccessBean aStoreAccessBean,
java.lang.String aCurrency)
throws ECSystemException
- Get the counter currencies that apply, to a particular currency, in the correct order. Counter currencies are searched for along the store path for relationship type com.ibm.commerce.currency.countervalue. Once any counter values are found, the search stops.
-
- Parameters:
- aStoreAccessBean - a store.
- aCurrency - the currency.
- Returns:
- an array of counter currencies in the correct order.
- Throws:
- ECSystemException
getCounterValues
public MonetaryAmount[] getCounterValues(StoreAccessBean aStoreAccessBean,
MonetaryAmount aMonetaryAmount)
throws ECSystemException
- Get the list of counter values in the appropriate order. Counter currencies are searched for along the store path for relationship type com.ibm.commerce.currency.countervalue. Once any counter values are found, the search stops.
-
- Parameters:
- aStoreAccessBean - the store to use to choose the counter values.
- aMonetaryAmount - the monetary amount to find the counter values for.
- Returns:
- an array of monetary amounts representing the counter values in the correct order.
- Throws:
- ECSystemException
getCurrency
public java.lang.String getCurrency(StoreAccessBean aStoreAccessBean,
java.lang.String aPreferredCurrency,
java.lang.Integer aLanguageId)
throws ECSystemException
- Calculate the negotiated shopping currency for the specified store based on the user's preferred currency.
-
- Parameters:
- aStoreAccessBean - the store for the currency.
- aPreferredCurrency - the user's preferred currency.
- aLanguageId - the language Id of the command context (to choose the default currency)
- Returns:
- the negotiated shopping currency.
- Throws:
- ECSystemException
getCustomizedRoundingMultiple
public java.math.BigDecimal getCustomizedRoundingMultiple(StoreAccessBean aStoreAccessBean,
java.lang.String aUnit)
throws ECSystemException
- Gets the unit to which rounding occurs. For instance, if the rounding occurs to the nearest 5 cents then the value 0.05 will be returned.
-
- Parameters:
- aStoreAccessBean - the store for which the rounding applies.
- aUnit - the currency for which the rounding applies.
- Returns:
- the rounding unit.
- Throws:
- ECSystemException
getCustomizedRoundingMultiple
public java.math.BigDecimal getCustomizedRoundingMultiple(StoreAccessBean aStoreAccessBean,
java.lang.String aUnit,
java.lang.String aNumberUsage)
throws ECSystemException
- Gets the unit to which rounding occurs. For instance, if the rounding occurs to the nearest 5 cents then the value 0.05 will be returned.
-
- Parameters:
- aStoreAccessBean - the store for which the rounding applies.
- aUnit - the currency for which the rounding applies.
- aNumberUsage - the number usage code.
- Returns:
- the rounding unit.
- Throws:
- ECSystemException
getCustomizedString
public java.lang.String getCustomizedString(StoreAccessBean aStoreAccessBean,
java.lang.String aCurrency,
java.lang.Integer aLanguageId)
throws ECSystemException
- Get the customized string from the format table.
-
- Parameters:
- aStoreAccessBean - the store for choosing the appropriate customized string.
- aCurrency - the currency for which to choose the customized string.
- aLanguageId - the language Id of the language for the customized string.
- Returns:
- the customized string from the format table.
- Throws:
- ECSystemException
getDefaultCurrency
public java.lang.String getDefaultCurrency(StoreAccessBean aStoreAccessBean)
throws ECSystemException
- Get the store level default currency for a particular store.
-
- Parameters:
- aStoreAccessBean - a store access bean.
- Returns:
- the default currency.
- Throws:
- ECSystemException
getDefaultCurrency
public java.lang.String getDefaultCurrency(StoreAccessBean aStoreAccessBean,
java.lang.Integer aLanguageId)
throws ECSystemException
- Get the default currency for a particular store and language Id. If there is a store entity level default currency, it will take precedence.
-
- Parameters:
- aStoreAccessBean - a store access bean.
- aLanguageId - a language Id.
- Returns:
- the default currency.
- Throws:
- ECSystemException
getDescription
public java.lang.String getDescription(StoreAccessBean aStoreAccessBean,
java.lang.String aCurrency,
java.lang.Integer aLanguageId)
throws ECSystemException
- Get the description of the specified currency.
-
- Parameters:
- aStoreAccessBean - the store that the description applies to.
- aCurrency - the currency that the description is for.
- aLanguageId - the language Id of the language for the description.
- Returns:
- the currency description.
- Throws:
- ECSystemException
getFormattedMonetaryAmount
public FormattedMonetaryAmount getFormattedMonetaryAmount(MonetaryAmount aMonetaryAmount,
StoreAccessBean aStoreAccessBean,
java.lang.Integer aLanguageId)
throws ECSystemException
- Get a formatted monetary amount for display purposes based on the formatting rules defined in the database. Numbers are rounded to the number of decimal places specified in the formatting rules.
-
- Parameters:
- aMonetaryAmount - the monetary amount to format.
- aStoreAccessBean - a store.
- aLanguageId - a language ID.
- Returns:
- the formatted monetary amount.
- Throws:
- ECSystemException
getFormattedMonetaryAmount
public FormattedMonetaryAmount getFormattedMonetaryAmount(MonetaryAmount aMonetaryAmount,
StoreAccessBean aStoreAccessBean,
java.lang.Integer aLanguageId,
java.lang.String aNumberUsage)
throws ECSystemException
- Get a formatted monetary amount for display purposes based on the formatting rules defined in the database. Numbers are rounded to the number of decimal places specified in the formatting rules.
-
- Parameters:
- aMonetaryAmount - the monetary amount to format.
- aStoreAccessBean - a store.
- aLanguageId - a language ID.
- aNumberUsage - the number usage code.
- Returns:
- the formatted monetary amount.
- Throws:
- ECSystemException
getInstance
public static CurrencyManager getInstance()
throws ECSystemException
- Get the instance of the currency manager.
-
- Returns:
- the Currency Manager instance.
- Throws:
- ECSystemException
getMinApproveAmount
public java.math.BigDecimal getMinApproveAmount(StoreAccessBean aStoreAB,
java.lang.String aCurrency)
throws ECSystemException
- Get the minimum approved amount.
-
- Parameters:
- aStoreAB - the store access bean.
- aCurrency - the currency.
- Returns:
- the minimum approved amount.
- Throws:
- ECSystemException
getMinApproveAmount
public java.math.BigDecimal getMinApproveAmount(StoreAccessBean aStoreAB,
java.lang.String aCurrency,
java.lang.String aNumberUsage)
throws ECSystemException
- Get the minimum approved amount.
-
- Parameters:
- aStoreAB - the store access bean.
- aCurrency - the currency.
- aNumberUsage - the number usage code.
- Returns:
- the minimum approved amount.
- Throws:
- ECSystemException
getRoundingMultiple
public java.math.BigDecimal getRoundingMultiple(StoreAccessBean aStoreAccessBean,
java.lang.String aUnit)
throws ECSystemException
- Gets the unit to which rounding occurs. For instance, if the rounding occurs to the nearest penny then the value 0.01 will be returned.
-
- Parameters:
- aStoreAccessBean - the store for which the rounding applies.
- aUnit - the currency for which the rounding applies.
- Returns:
- the rounding unit.
- Throws:
- ECSystemException
getRoundingMultiple
public java.math.BigDecimal getRoundingMultiple(StoreAccessBean aStoreAccessBean,
java.lang.String aUnit,
java.lang.String aNumberUsage)
throws ECSystemException
- Gets the unit to which rounding occurs. For instance, if the rounding occurs to the nearest penny then the value 0.01 will be returned.
-
- Parameters:
- aStoreAccessBean - the store for which the rounding applies.
- aUnit - the currency for which the rounding applies.
- aNumberUsage - the number usage code.
- Returns:
- the rounding unit.
- Throws:
- ECSystemException
getStoreIdForConverter
protected java.lang.Integer getStoreIdForConverter(StoreAccessBean aStoreAccessBean)
throws ECSystemException
- Get the store Id to use for converters. IBM Internal Use Only.
-
- Specified by:
- getStoreIdForConverter in class UnitManager
-
- Parameters:
- aStoreAccessBean - The store access bean.
- Returns:
- The store ID.
- Throws:
- ECSystemException
getSupportedCurrencies
public java.lang.String[] getSupportedCurrencies(StoreAccessBean aStoreAB)
throws ECSystemException
- Get a list of the currencies supported by a store. All currencies along the store path of the relationship type com.ibm.commerce.currency.supported are supported by a store.
-
- Parameters:
- aStoreAB - the store access bean for which the currencies are to be found.
- Returns:
- a list of supported currencies.
- Throws:
- ECSystemException
getSymbol
public java.lang.String getSymbol(StoreAccessBean aStoreAccessBean,
java.lang.String aCurrency,
java.lang.Integer aLanguageId)
throws ECSystemException
- Get the currency symbol information from the currency format table.
-
- Parameters:
- aStoreAccessBean - the store.
- aCurrency - the currency.
- aLanguageId - the language Id of the language for the symbol.
- Returns:
- the currency symbol.
- Throws:
- ECSystemException
initialize
public void initialize()
throws java.lang.Exception
- Used by the registry manager to initialize the currency manager.
-
- Throws:
- java.lang.Exception
isSupportedCurrency
public boolean isSupportedCurrency(StoreAccessBean aStoreAccessBean,
java.lang.String aCurrency)
throws ECSystemException
- Checks to see if a currency is supported in a store. The store path for relationship type com.ibm.commerce.currency.supported is searched. If the currency is supported anywhere along the store path then it is supported.
-
- Parameters:
- aStoreAccessBean - The store access bean.
- aCurrency - The currency to check.
- Returns:
- true if the currency is supported; false otherwise.
- Throws:
- ECSystemException
refreshExtension
protected void refreshExtension(Formatters theTempFormatters)
throws ECSystemException
- Pass all NumberFormat objects to the tools runtime.
-
- Overrides:
- refreshExtension in class UnitManager
-
- Parameters:
- theTempFormatters - com.ibm.commerce.price.utils.Formatters
- Throws:
- ECSystemException
refreshOthers
protected void refreshOthers(Converters aConverters)
throws ECSystemException
- Refresh other containers not handles by the parent class.
-
- Overrides:
- refreshOthers in class UnitManager
-
- Parameters:
- aConverters - The currency converters.
- Throws:
- ECSystemException
round
public void round(MonetaryAmount aMonetaryAmount,
StoreAccessBean aStoreAccessBean)
throws ECSystemException
- Round the monetary amount to the appropriate number of decimal places. This ignores the roundingMultiple and roundingMethod columns of the currency format table.
-
- Parameters:
- aMonetaryAmount - the monetary amount to round.
- aStoreAccessBean - the store.
- Throws:
- ECSystemException
round
public void round(MonetaryAmount aMonetaryAmount,
StoreAccessBean aStoreAccessBean,
java.lang.String aNumberUsage)
throws ECSystemException
- Round the monetary amount to the appropriate number of decimal places. This ignores the roundingMultiple and roundingMethod columns of the currency format table.
-
- Parameters:
- aMonetaryAmount - the monetary amount to round.
- aStoreAccessBean - the store.
- aNumberUsage - the number usage code.
- Throws:
- ECSystemException
roundCustomized
public void roundCustomized(MonetaryAmount aMonetaryAmount,
StoreAccessBean aStoreAccessBean)
throws ECSystemException
- Perform customized rounding to the correct number of decimal places. This uses the roundingMultiple and roundingMethod columns of the currency format table.
-
- Parameters:
- aMonetaryAmount - the monetary amount to round.
- aStoreAccessBean - the store.
- Throws:
- ECSystemException
roundCustomized
public void roundCustomized(MonetaryAmount aMonetaryAmount,
StoreAccessBean aStoreAccessBean,
java.lang.String aNumberUsage)
throws ECSystemException
- Perform customized rounding to the correct number of decimal places. This uses the roundingMultiple and roundingMethod columns of the currency format table.
-
- Parameters:
- aMonetaryAmount - the monetary amount to round.
- aStoreAccessBean - the store.
- aNumberUsage - the number usage code.
- Throws:
- ECSystemException
parsePositiveAmount
public java.math.BigDecimal parsePositiveAmount(java.lang.String anAmount,
java.lang.String theUnit,
StoreAccessBean aStoreAccessBean,
java.lang.Integer aLanguageId,
java.lang.String aNumberUsage)
throws ECSystemException,
java.text.ParseException
- Parses a string (representing a positive number) based on the formatting rules defined in the database.
-
- Parameters:
- anAmount - the amount to parse.
- theUnit - the unit of the value.
- aStoreAccessBean - a store access bean.
- aLanguageId - a language ID.
- aNumberUsage - The number usage code to use.
- Returns:
- the parsed value.
- Throws:
- ECSystemException
- java.text.ParseException
Feedback
(C) Copyright IBM Corporation 1996, 2005. All Rights Reserved.