String currency = _targetCurrenciesCache.get(uniqueId);
if (currency == null) {
if (ComputationTargetType.PORTFOLIO_NODE.isCompatible(computationTargetType) || ComputationTargetType.PORTFOLIO.isCompatible(computationTargetType)) {
currency = MIXED_CURRENCY;
} else if (ComputationTargetType.POSITION.isCompatible(computationTargetType)) {
PositionSource positionSource = _toolContext.getPositionSource();
Position position = positionSource.getPosition(uniqueId);
if (position.getSecurity() == null) {
position.getSecurityLink().resolve(_toolContext.getSecuritySource());
}
if (position.getSecurity() != null) {
currency = _currenciesAggrFunction.classifyPosition(position);
}
} else if (ComputationTargetType.TRADE.isCompatible(computationTargetType)) {
PositionSource positionSource = _toolContext.getPositionSource();
Trade trade = positionSource.getTrade(uniqueId);
if (trade.getSecurity() == null) {
trade.getSecurityLink().resolve(_toolContext.getSecuritySource());
}
if (trade.getSecurity() != null) {
currency = CurrenciesAggregationFunction.classifyBasedOnSecurity(trade.getSecurity(), _toolContext.getSecuritySource());