@XmlElement public List<Instalment> getCashFlow() { return unmodifiableOrEmpty(cashFlow); }
static Map<Integer, Blocked> readBlockedAmounts(final Tenant tenant, final Statistics stats) { final long portfolioSize = stats.getCurrentOverview().getPrincipalLeft(); final Divisor divisor = new Divisor(portfolioSize); return tenant.call(Zonky::getBlockedAmounts) .parallel() .peek(ba -> LOGGER.debug("Found: {}.", ba)) .filter(ba -> ba.getLoanId() > 0) .flatMap(ba -> getLoan(tenant, ba, divisor) .map(l -> Stream.of(new Blocked(ba, l.getRating()))) .orElse(Stream.empty())) .collect(Collectors.toMap(Blocked::getId, b -> b, Util::merge)); }
protected static Zonky harmlessZonky(final int availableBalance) { final Zonky zonky = mock(Zonky.class); final BigDecimal balance = BigDecimal.valueOf(availableBalance); when(zonky.getWallet()).thenReturn(new Wallet(1, 2, balance, balance)); when(zonky.getRestrictions()).thenReturn(new Restrictions(true)); when(zonky.getBlockedAmounts()).thenAnswer(i -> Stream.empty()); when(zonky.getStatistics()).thenReturn(Statistics.empty()); when(zonky.getDevelopments(anyInt())).thenAnswer(i -> Stream.empty()); return zonky; }
@Override public Map<Rating, BigDecimal> getTotal() { final RemoteData data = getRemotePortfolio(); // use the same data for the entirety of this method final Map<Rating, BigDecimal> amounts = data.getStatistics().getRiskPortfolio().stream() .collect(Collectors.toMap(RiskPortfolio::getRating, RemotePortfolioImpl::sum, BigDecimal::add, // should not be necessary () -> new EnumMap<>(Rating.class))); final Stream<Blocked> blocked = Stream.concat(syntheticByLoanId.get().values().stream(), data.getBlocked().values().stream()); blocked.forEach(b -> { final Rating r = b.getRating(); final BigDecimal amount = b.getAmount(); amounts.put(r, amounts.getOrDefault(r, BigDecimal.ZERO).add(amount)); }); return Collections.unmodifiableMap(amounts); }
static Map<Integer, Blocked> readBlockedAmounts(final Tenant tenant, final Statistics stats) { final long portfolioSize = stats.getCurrentOverview().getPrincipalLeft(); final Divisor divisor = new Divisor(portfolioSize); return tenant.call(Zonky::getBlockedAmounts) .parallel() .peek(ba -> LOGGER.debug("Found: {}.", ba)) .filter(ba -> ba.getLoanId() > 0) .flatMap(ba -> getLoan(tenant, ba, divisor) .map(l -> Stream.of(new Blocked(ba, l.getRating()))) .orElse(Stream.empty())) .collect(Collectors.toMap(Blocked::getId, b -> b, Util::merge)); }
protected static Zonky harmlessZonky(final int availableBalance) { final Zonky zonky = mock(Zonky.class); final BigDecimal balance = BigDecimal.valueOf(availableBalance); when(zonky.getWallet()).thenReturn(new Wallet(1, 2, balance, balance)); when(zonky.getRestrictions()).thenReturn(new Restrictions(true)); when(zonky.getBlockedAmounts()).thenAnswer(i -> Stream.empty()); when(zonky.getStatistics()).thenReturn(Statistics.empty()); when(zonky.getDevelopments(anyInt())).thenAnswer(i -> Stream.empty()); return zonky; }
@Override public Map<Rating, BigDecimal> getTotal() { final RemoteData data = getRemotePortfolio(); // use the same data for the entirety of this method LOGGER.debug("Remote data used: {}.", data); final Map<Rating, BigDecimal> amounts = data.getStatistics().getRiskPortfolio().stream() .collect(Collectors.toMap(RiskPortfolio::getRating, RemotePortfolioImpl::sum, BigDecimal::add, // should not be necessary () -> new EnumMap<>(Rating.class))); LOGGER.debug("Before synthetics: {}.", amounts); Stream.concat(syntheticByLoanId.get().values().stream(), data.getBlocked().values().stream()) .forEach(b -> { final Rating r = b.getRating(); final BigDecimal amount = b.getAmount(); amounts.put(r, amounts.getOrDefault(r, BigDecimal.ZERO).add(amount)); }); LOGGER.debug("Totals: {}.", amounts); return Collections.unmodifiableMap(amounts); }
@XmlElement public List<RiskPortfolio> getRiskPortfolio() { // "riskPortfolio" is null for new Zonky users return unmodifiableOrEmpty(riskPortfolio); }
@XmlElement public List<RiskPortfolio> getRiskPortfolio() { // "riskPortfolio" is null for new Zonky users return unmodifiableOrEmpty(riskPortfolio); }
@XmlElement public List<Instalment> getCashFlow() { return unmodifiableOrEmpty(cashFlow); }
@XmlElement public List<ExpectedPayment> getExpectedPayments() { return unmodifiableOrEmpty(expectedPayments); }
@XmlElement public List<ExpectedPayment> getExpectedPayments() { return unmodifiableOrEmpty(expectedPayments); }