package org.jetbrains.mps.samples.money.runtime; /*Generated by MPS */ import java.math.BigDecimal; import java.util.List; import jetbrains.mps.internal.collections.runtime.ListSequence; import jetbrains.mps.internal.collections.runtime.ISelector; import jetbrains.mps.internal.collections.runtime.ILeftCombinator; public final class StockPriceCalculator { public static Iterable<BigDecimal> calculateMovingAverage(List<DailyStockPrice> prices) { List<DailyStockPrice> pricesToUse = retrievePricesWithin(prices); BigDecimal sum = ListSequence.fromList(pricesToUse).select(new ISelector<DailyStockPrice, BigDecimal>() { public BigDecimal select(DailyStockPrice it) { return it.getAdjustedClose(); } }).reduceLeft(new ILeftCombinator<BigDecimal, BigDecimal>() { public BigDecimal combine(BigDecimal a, BigDecimal b) { return a.add(b); } }); BigDecimal divided = sum.divide(BigDecimal.valueOf(ListSequence.fromList(pricesToUse).count())); return null; } private static List<DailyStockPrice> retrievePricesWithin(List<DailyStockPrice> prices) { return ListSequence.fromList(prices).subListSequence(0, 10); } }