/** * */ package eu.quanticol.carma.simulator2; import java.util.function.Consumer; /** * @author loreti * */ public interface UpdateFunction { /** * This method must return the function that is used to update the state (either * population or store) when a action is executed by a component with store <code>source</code> * in the system configuration <code>state</code>. * * @param state current system configuration * @param source store of sending component * @param value sent value * @return function that performs the update on the populatio and on the global store after the action execution. */ public Consumer<CarmaPopulationState> compute( CarmaPopulationState state, Store source, Object value ); }