Package org.apache.solr.schema
Class CurrencyValue
- java.lang.Object
-
- org.apache.solr.schema.CurrencyValue
-
- All Implemented Interfaces:
Comparable<CurrencyValue>
public class CurrencyValue extends Object implements Comparable<CurrencyValue>
Represents a Currency field value, which includes a long amount and ISO currency code.
-
-
Constructor Summary
Constructors Constructor Description CurrencyValue(long amount, String currencyCode)Constructs a new currency value.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompareTo(CurrencyValue o)static longconvertAmount(double exchangeRate, int sourceFractionDigits, long sourceAmount, int targetFractionDigits)Performs a currency conversion & unit conversion.static longconvertAmount(double exchangeRate, String sourceCurrencyCode, long sourceAmount, String targetCurrencyCode)Performs a currency conversion & unit conversion.static longconvertAmount(ExchangeRateProvider exchangeRates, String sourceCurrencyCode, long sourceAmount, String targetCurrencyCode)Performs a currency conversion & unit conversion.CurrencyValueconvertTo(ExchangeRateProvider exchangeRates, String targetCurrencyCode)Returns a new CurrencyValue that is the conversion of this CurrencyValue to the specified currency.longgetAmount()The amount of the CurrencyValue.StringgetCurrencyCode()The ISO currency code of the CurrencyValue.static CurrencyValueparse(String externalVal, String defaultCurrency)Constructs a new currency value by parsing the specific input.StringstrValue()Returns a string representing the currency value such as "3.14,USD" for a CurrencyValue of $3.14 USD.StringtoString()
-
-
-
Constructor Detail
-
CurrencyValue
public CurrencyValue(long amount, String currencyCode)Constructs a new currency value.- Parameters:
amount- The amount.currencyCode- The currency code.
-
-
Method Detail
-
parse
public static CurrencyValue parse(String externalVal, String defaultCurrency)
Constructs a new currency value by parsing the specific input.Currency values are expected to be in the format <amount>,<currency code>, for example, "500,USD" would represent 5 U.S. Dollars.
If no currency code is specified, the default is assumed.
- Parameters:
externalVal- The value to parse.defaultCurrency- The default currency.- Returns:
- The parsed CurrencyValue.
-
getAmount
public long getAmount()
The amount of the CurrencyValue.- Returns:
- The amount.
-
getCurrencyCode
public String getCurrencyCode()
The ISO currency code of the CurrencyValue.- Returns:
- The currency code.
-
convertAmount
public static long convertAmount(ExchangeRateProvider exchangeRates, String sourceCurrencyCode, long sourceAmount, String targetCurrencyCode)
Performs a currency conversion & unit conversion.- Parameters:
exchangeRates- Exchange rates to apply.sourceCurrencyCode- The source currency code.sourceAmount- The source amount.targetCurrencyCode- The target currency code.- Returns:
- The converted indexable units after the exchange rate and currency fraction digits are applied.
-
convertAmount
public static long convertAmount(double exchangeRate, int sourceFractionDigits, long sourceAmount, int targetFractionDigits)Performs a currency conversion & unit conversion.- Parameters:
exchangeRate- Exchange rate to apply.sourceFractionDigits- The fraction digits of the source.sourceAmount- The source amount.targetFractionDigits- The fraction digits of the target.- Returns:
- The converted indexable units after the exchange rate and currency fraction digits are applied.
-
convertAmount
public static long convertAmount(double exchangeRate, String sourceCurrencyCode, long sourceAmount, String targetCurrencyCode)Performs a currency conversion & unit conversion.- Parameters:
exchangeRate- Exchange rate to apply.sourceCurrencyCode- The source currency code.sourceAmount- The source amount.targetCurrencyCode- The target currency code.- Returns:
- The converted indexable units after the exchange rate and currency fraction digits are applied.
-
convertTo
public CurrencyValue convertTo(ExchangeRateProvider exchangeRates, String targetCurrencyCode)
Returns a new CurrencyValue that is the conversion of this CurrencyValue to the specified currency.- Parameters:
exchangeRates- The exchange rate provider.targetCurrencyCode- The target currency code to convert this CurrencyValue to.- Returns:
- The converted CurrencyValue.
-
strValue
public String strValue()
Returns a string representing the currency value such as "3.14,USD" for a CurrencyValue of $3.14 USD.
-
compareTo
public int compareTo(CurrencyValue o)
- Specified by:
compareToin interfaceComparable<CurrencyValue>
-
-