import nl.strohalm.cyclos.entities.accounts.Currency; //导入方法依赖的package包/类
/**
* tries to get the associated Currency
via several methods. If all of these fail, an empty currency is returned, resulting in empty
* strings as name and symbol for the currency.
*
* @param queryParameters
* @return the associated currency.
*/
protected Currency getCurrency(final StatisticalQuery queryParameters) {
// first check if a system account type is defined, and if so, get it via this
final SystemAccountType systemAccountFilter = getInitializedSystemAccountFilter(queryParameters);
if (systemAccountFilter != null) {
return systemAccountFilter.getCurrency();
}
// if this did not succeed, try to get it via the paymentFilter
final PaymentFilter paymentFilter = getInitializedPaymentFilter(queryParameters);
// if a paymentFilter was specified, get its associated currency
if (paymentFilter != null) {
return paymentFilter.getAccountType().getCurrency();
}
// if no paymentFilter was specified, check if only one currency is installed, and if so, use that one.
final List currencyList = currencyDao.listAll();
if (currencyList.size() == 1) {
return currencyList.get(0);
}
// if all of the above failed, use empty currency
final Currency result = new Currency();
result.setName("");
result.setSymbol("");
return result;
}