package com.plectix.simulator.simulationclasses.solution; import com.plectix.simulator.staticanalysis.Agent; /** * <p>This is application pool, temporary storage for the one rule application. * When rule is ready to be applied with set of injections S, we retrieve all the substances * which should react (i.e. where injections from S point to) from solution and place them here.</p> * <p>Then we apply rule to the substances within this pool and finally someone calls solution's method * ISolution.flushPoolContent(), which adds the result of the reaction * (which is temporary placed here, in pool) back to the solution.</p> */ public interface RuleApplicationPoolInterface { /** * Adds agent to this pool * @param agent agent to be added */ public void addAgent(Agent agent); /** * Removes agent from this pool * @param agent agent to be removed */ public void removeAgent(Agent agent); /** * @return this pool's storage */ public StraightStorage getStorage(); /** * Clears this pool's storage */ public void clear(); }