diff --git a/src/test/java/examples/portfolio/PortfolioAssetInterface.java b/src/test/java/examples/portfolio/PortfolioAssetInterface.java new file mode 100644 index 000000000..dbc7fd742 --- /dev/null +++ b/src/test/java/examples/portfolio/PortfolioAssetInterface.java @@ -0,0 +1,13 @@ +package examples.portfolio; + +public interface PortfolioAssetInterface +{ + public long getAssetId(); + public void setAssetId(long assetId); + + public int getShares(); + public void setShares(int shares); + + public double getPrice(); + public void setPrice(double price); +} \ No newline at end of file diff --git a/src/test/java/examples/portfolio/PortfolioValueAccumulator.java b/src/test/java/examples/portfolio/PortfolioValueAccumulator.java new file mode 100644 index 000000000..23f0364f3 --- /dev/null +++ b/src/test/java/examples/portfolio/PortfolioValueAccumulator.java @@ -0,0 +1,26 @@ +package examples.portfolio; + +import java.util.function.Consumer; + +import org.apache.commons.lang3.mutable.MutableDouble; + +import net.openhft.chronicle.core.values.LongValue; +import net.openhft.chronicle.map.MapEntry; + +public final class PortfolioValueAccumulator implements Consumer> +{ + final MutableDouble total; + final PortfolioAssetInterface asset; + public PortfolioValueAccumulator(MutableDouble total, PortfolioAssetInterface asset) + { + this.total = total; + this.asset = asset; + } + + @Override + public void accept(MapEntry e) + { + e.value().getUsing(asset); + total.add(asset.getShares() * asset.getPrice()); + } +} \ No newline at end of file