com.ibm.commerce.price.utils

Class QuantityManager

  • All Implemented Interfaces:
    com.ibm.commerce.registry.Registry


    public class QuantityManager
    extends UnitManager
    Quantity Manager.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      QuantityAmount convert(QuantityAmount aQuantityAmount, java.lang.String toQuantityUnit)
      Convert a quantity amount to a new quantity unit.
      java.util.List getConvertableUnits(java.lang.String aUnit)
      Get all quantity units that can be converted from/to
      java.lang.Double getCustomizedRoundingMultiple(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean, java.lang.String aUnit)
      Gets the unit to which rounding occurs.
      java.lang.Double getCustomizedRoundingMultiple(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean, java.lang.String aUnit, java.lang.String aNumberUsage)
      Gets the unit to which rounding occurs.
      java.lang.String getCustomizedString(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean, java.lang.String aQuantityUnit, java.lang.Integer aLanguageId)
      Get the customized string from the format table.
      java.lang.String getDescription(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean, java.lang.String aQuantityUnit, java.lang.Integer aLanguageId)
      Get the description of the specified quantity unit.
      FormattedQuantityAmount getFormattedQuantityAmount(QuantityAmount aQuantityAmount, com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean, java.lang.Integer aLanguageId)
      Get a formatted quantity amount for display purposes based on the formatting rules defined in the database.
      FormattedQuantityAmount getFormattedQuantityAmount(QuantityAmount aQuantityAmount, com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean, java.lang.Integer aLanguageId, java.lang.String aNumberUsage)
      Get a formatted quantity amount for display purposes based on the formatting rules defined in the database.
      static QuantityManager getInstance()
      Get the instance of the quantity manager.
      java.lang.Double getRoundingMultiple(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean, java.lang.String aUnit)
      Gets the unit to which rounding occurs.
      java.lang.Double getRoundingMultiple(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean, java.lang.String aUnit, java.lang.String aNumberUsage)
      Gets the unit to which rounding occurs.
      java.lang.String getSymbol(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean, java.lang.String aQuantityUnit, java.lang.Integer aLanguageId)
      Get the quantity symbol information from the quantity format table.
      void initialize()
      Used by the registry manager to initialize the quantity manager.
      java.lang.Double parsePositiveAmount(java.lang.String anAmount, java.lang.String theUnit, com.ibm.commerce.common.objects.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.
      void round(QuantityAmount aQuantityAmount, com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean)
      Round the quantity amount to the appropriate number of decimal places.
      void round(QuantityAmount aQuantityAmount, com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean, java.lang.String aNumberUsage)
      Round the quantity amount to the appropriate number of decimal places.
      void roundCustomized(QuantityAmount aQuantityAmount, com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean)
      Perform customized rounding to the correct number of decimal places.
      void roundCustomized(QuantityAmount aQuantityAmount, com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean, java.lang.String aNumberUsage)
      Perform customized rounding to the correct number of decimal places.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • convert

        public QuantityAmount convert(QuantityAmount aQuantityAmount,
                                      java.lang.String toQuantityUnit)
                               throws com.ibm.commerce.exception.ECSystemException
        Convert a quantity amount to a new quantity unit. A conversion is searched in the specified store. If not found, a conversion will be searched for along the store path for the relationship type com.ibm.commerce.measurement.conversion.
        Parameters:
        aQuantityAmount - a quantity amount to be converted.
        toQuantityUnit - the quantity unit to convert to.
        Returns:
        the new quantity amount in the target quantity unit. If there is no conversion then null is returned.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • getConvertableUnits

        public java.util.List getConvertableUnits(java.lang.String aUnit)
        Get all quantity units that can be converted from/to
        aUnit
        .
        Parameters:
        aUnit
        - the starting quantity unit.
        Returns:
        all quantity units that are convertable from/to
        aUnit
        (including
        aUnit
        ).
      • getCustomizedRoundingMultiple

        public java.lang.Double getCustomizedRoundingMultiple(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean,
                                                              java.lang.String aUnit)
                                                       throws com.ibm.commerce.exception.ECSystemException
        Gets the unit to which rounding occurs. For instance, if the rounding occurs to the nearest 5 units then the value 0.05 will be returned.
        Parameters:
        aStoreAccessBean - the store for which the rounding applies.
        aUnit
        - the quantity unit for which the rounding applies.
        Returns:
        the rounding unit.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • getCustomizedRoundingMultiple

        public java.lang.Double getCustomizedRoundingMultiple(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean,
                                                              java.lang.String aUnit,
                                                              java.lang.String aNumberUsage)
                                                       throws com.ibm.commerce.exception.ECSystemException
        Gets the unit to which rounding occurs. For instance, if the rounding occurs to the nearest 5 units then the value 0.05 will be returned.
        Parameters:
        aStoreAccessBean - the store for which the rounding applies.
        aUnit
        - the quantity unit for which the rounding applies.
        aNumberUsage - the number usage code.
        Returns:
        the rounding unit.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • getCustomizedString

        public java.lang.String getCustomizedString(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean,
                                                    java.lang.String aQuantityUnit,
                                                    java.lang.Integer aLanguageId)
                                             throws com.ibm.commerce.exception.ECSystemException
        Get the customized string from the format table.
        Parameters:
        aStoreAccessBean - the store for choosing the customized string.
        aQuantityUnit - the quantity unit 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:
        com.ibm.commerce.exception.ECSystemException
      • getDescription

        public java.lang.String getDescription(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean,
                                               java.lang.String aQuantityUnit,
                                               java.lang.Integer aLanguageId)
                                        throws com.ibm.commerce.exception.ECSystemException
        Get the description of the specified quantity unit.
        Parameters:
        aStoreAccessBean - the store that the description applies to.
        aQuantityUnit - the quantity unit that the description is for.
        aLanguageId - the language Id of the language for the description.
        Returns:
        the quantity unit description.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • getFormattedQuantityAmount

        public FormattedQuantityAmount getFormattedQuantityAmount(QuantityAmount aQuantityAmount,
                                                                  com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean,
                                                                  java.lang.Integer aLanguageId)
                                                           throws com.ibm.commerce.exception.ECSystemException
        Get a formatted quantity 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:
        aQuantityAmount - the quantity amount to format.
        aStoreAccessBean - a store.
        aLanguageId - a language ID.
        Returns:
        the formatted quantity amount.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • getFormattedQuantityAmount

        public FormattedQuantityAmount getFormattedQuantityAmount(QuantityAmount aQuantityAmount,
                                                                  com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean,
                                                                  java.lang.Integer aLanguageId,
                                                                  java.lang.String aNumberUsage)
                                                           throws com.ibm.commerce.exception.ECSystemException
        Get a formatted quantity 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:
        aQuantityAmount - the quantity amount to format.
        aStoreAccessBean - a store.
        aLanguageId - a language ID.
        aNumberUsage - the number usage code.
        Returns:
        the formatted quantity amount.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • getInstance

        public static QuantityManager getInstance()
                                           throws com.ibm.commerce.exception.ECSystemException
        Get the instance of the quantity manager.
        Returns:
        the Quantity Manager instance.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • getRoundingMultiple

        public java.lang.Double getRoundingMultiple(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean,
                                                    java.lang.String aUnit)
                                             throws com.ibm.commerce.exception.ECSystemException
        Gets the unit to which rounding occurs.
        Parameters:
        aStoreAccessBean - the store for which the rounding applies.
        aUnit
        - the quantity unit for which the rounding applies.
        Returns:
        the rounding unit.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • getRoundingMultiple

        public java.lang.Double getRoundingMultiple(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean,
                                                    java.lang.String aUnit,
                                                    java.lang.String aNumberUsage)
                                             throws com.ibm.commerce.exception.ECSystemException
        Gets the unit to which rounding occurs.
        Parameters:
        aStoreAccessBean - the store for which the rounding applies.
        aUnit
        - the quantity unit for which the rounding applies.
        aNumberUsage - the number usage code.
        Returns:
        the rounding unit.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • getSymbol

        public java.lang.String getSymbol(com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean,
                                          java.lang.String aQuantityUnit,
                                          java.lang.Integer aLanguageId)
                                   throws com.ibm.commerce.exception.ECSystemException
        Get the quantity symbol information from the quantity format table.
        Parameters:
        aStoreAccessBean - the store.
        aQuantityUnit - the quantity unit.
        aLanguageId - the language Id of the language for the symbol.
        Returns:
        the quantity symbol.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • initialize

        public void initialize()
                        throws java.lang.Exception
        Used by the registry manager to initialize the quantity manager.
        Throws:
        java.lang.Exception
      • parsePositiveAmount

        public java.lang.Double parsePositiveAmount(java.lang.String anAmount,
                                                    java.lang.String theUnit,
                                                    com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean,
                                                    java.lang.Integer aLanguageId,
                                                    java.lang.String aNumberUsage)
                                             throws com.ibm.commerce.exception.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:
        com.ibm.commerce.exception.ECSystemException
        java.text.ParseException
      • round

        public void round(QuantityAmount aQuantityAmount,
                          com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean)
                   throws com.ibm.commerce.exception.ECSystemException
        Round the quantity amount to the appropriate number of decimal places. This ignores the
        roundingMultiple
        and
        roundingMethod
        columns of the quantity format table.
        Parameters:
        aQuantityAmount - the quantity amount to round.
        aStoreAccessBean - the store.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • round

        public void round(QuantityAmount aQuantityAmount,
                          com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean,
                          java.lang.String aNumberUsage)
                   throws com.ibm.commerce.exception.ECSystemException
        Round the quantity amount to the appropriate number of decimal places. This ignores the
        roundingMultiple
        and
        roundingMethod
        columns of the quantity format table.
        Parameters:
        aQuantityAmount - the quantity amount to round.
        aStoreAccessBean - the store.
        aNumberUsage - the number usage code.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • roundCustomized

        public void roundCustomized(QuantityAmount aQuantityAmount,
                                    com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean)
                             throws com.ibm.commerce.exception.ECSystemException
        Perform customized rounding to the correct number of decimal places. This uses the
        roundingMultiple
        and
        roundingMethod
        columns of the quantity format table.
        Parameters:
        aQuantityAmount - the quantity amount to round.
        aStoreAccessBean - the store.
        Throws:
        com.ibm.commerce.exception.ECSystemException
      • roundCustomized

        public void roundCustomized(QuantityAmount aQuantityAmount,
                                    com.ibm.commerce.common.objects.StoreAccessBean aStoreAccessBean,
                                    java.lang.String aNumberUsage)
                             throws com.ibm.commerce.exception.ECSystemException
        Perform customized rounding to the correct number of decimal places. This uses the
        roundingMultiple
        and
        roundingMethod
        columns of the quantity format table.
        Parameters:
        aQuantityAmount - the quantity amount to round.
        aStoreAccessBean - the store.
        aNumberUsage - the number usage code.
        Throws:
        com.ibm.commerce.exception.ECSystemException