*/
    public float pushFoodToStore(FoodMatter[] foodToPush) {        float fullMassToDistribute = calculateSizeOfFoodMatter(foodToPush);        float resourceDistributed = fullMassToDistribute;        FoodMatter[] copyOfMatter = new FoodMatter[foodToPush.length];        System.arraycopy(foodToPush, 0, copyOfMatter, 0, foodToPush.length);        for (int i = 0; (i < getStores().length) && (resourceDistributed > 0); i++) {            float resourceToDistributeFirst = Math.min(resourceDistributed,                    getMaxFlowRate(i));            float resourceToDistributeFinal = Math.min(                    resourceToDistributeFirst, getDesiredFlowRate(i));            FoodStore currentFoodStore = FoodStoreHelper.narrow(getStores()[i]);            getActualFlowRates()[i] = currentFoodStore                    .addFoodMatterArray(copyOfMatter);            resourceDistributed -= getActualFlowRate(i);        }        float amountPushed = (fullMassToDistribute - resourceDistributed);        return amountPushed;    }