Patent ID: 6944595

Claim:
An apparatus comprising: (1) at least one processor; (2) a memory coupled to the at least one processor; (3) a plurality of object oriented exchange rate objects residing in the memory, each exchange rate object specifying a “from currency”, a “to currency”, and a conversion multiplier for converting an amount in the “from currency” to an equivalent amount in the “to currency” by multiplying the amount in the “from currency” by the conversion multiplier to calculate the equivalent amount in the “to currency”, the exchange rate comprising a direct exchange rate if the “from currency” is an expected currency and comprising an inverse exchange rate if the “to currency” is the expected currency; (4) a compound exchange rate object residing in the memory that contains an exchange rate path from a source currency to a target currency according to predefined rules, the exchange rate path comprising an ordered list of at least one of the plurality of exchange rate objects; and (5) a currency conversion mechanism residing in the memory and executed by the at least one processor, the currency conversion mechanism constructing the compound exchange rate object, and performing the steps of: (5A) selecting the first exchange rate in the exchange rate path as a current exchange rate; (5B) selecting the value in the source currency as the current value; (5C) determining the “from currency” of the current exchange rate; (5D) determining from the “from currency” of the current exchange rate whether the current exchange rate is a direct exchange rate; (5E) if the current exchange rate is a direct exchange rate, multiplying the current value by the conversion multiplier corresponding to the current exchange rate, and storing the result as a return value and as the current value; (5F) if the current exchange rate is an inverse exchange rate, dividing the current value by the conversion multiplier corresponding to the current exchange rate, and storing the result as the return value and as the current value; (5G) selecting the next exchange rate object in the exchange rate path, if any, as the current exchange rate; (5H) repeating steps (5C) through (5G) until the return value is in the target currency; and (5I) returning the return value.