List gatheredBioMatterArrays = new Vector();
List<BioMatter[]> gatheredBioMatterArrays = new Vector<BioMatter[]>();
    public BioMatter[] getBioMassFromStore(float amountNeeded) {        float gatheredResource = 0f;        List gatheredBioMatterArrays = new Vector();        int sizeOfMatterArray = 0;        for (int i = 0; (i < getStores().length)                && (gatheredResource < amountNeeded); i++) {            float resourceToGatherFirst = Math.min(amountNeeded,                    getMaxFlowRate(i));            float resourceToGatherFinal = Math.min(resourceToGatherFirst,                    getDesiredFlowRate(i));            BiomassStore currentBiomassStore = BiomassStoreHelper                    .narrow(getStores()[i]);            BioMatter[] takenMatter = currentBiomassStore                    .takeBioMatterMass(resourceToGatherFinal);            sizeOfMatterArray += takenMatter.length;            gatheredBioMatterArrays.add(takenMatter);            getActualFlowRates()[i] = calculateSizeOfBioMatter(takenMatter);            gatheredResource += getActualFlowRate(i);        }        BioMatter[] fullMatterTaken = new BioMatter[sizeOfMatterArray];        int lastPosition = 0;        for (Iterator iter = gatheredBioMatterArrays.iterator(); iter.hasNext();) {            BioMatter[] matterArray = (BioMatter[]) (iter.next());            System.arraycopy(matterArray, 0, fullMatterTaken, lastPosition,                    matterArray.length);            lastPosition += matterArray.length;        }        return fullMatterTaken;    }