src/main/java/com/ve/cxe/commons/collection/CyclicFixedPump.java
/**
     * @return Empty when pump runs dry, else pumping volume quantity is pumped out
     * Returned Array is not a new Object, rather the valve with the last pumped volume is returned
     */
@return Empty when pump runs dry, else pumping volume quantity is pumped out
Returned Array is not a new Object, rather the valve with the last pumped volume is returned
@return Empty when pump runs dry else pumping volume quantity is pumped out Returned Array is not a new Object rather the valve with the last pumped volume is returned
public Object[] pump() {
        if (current == 0) {
            return EMPTY_CONTAINER;
        }
        int valveCounter = 0;
        while (valveCounter < pumpingVolume) {
            cycleMaker = cycleMaker == 0 ? current : cycleMaker;
            cycleMaker--;
            valve[valveCounter] = values[cycleMaker];
            valveCounter++;
        }
        return valve;
    }
public Object [ ] pump ( ) { if ( current == 0 ) { return EMPTY_CONTAINER ; } int valveCounter = 0 ; while ( valveCounter < pumpingVolume ) { cycleMaker = cycleMaker == 0 ? current : cycleMaker ; cycleMaker -- ; valve [ valveCounter ] = values [ cycleMaker ] ; valveCounter ++ ; } return valve ; }
@return Empty when pump runs dry, else pumping volume quantity is pumped out
 Returned Array is not a new Object, rather the valve with the last pumped volume is returned
@return Empty when pump runs dry else pumping volume quantity is pumped out Returned Array is not a new Object rather the valve with the last pumped volume is returned
//Pump is running dry, and returns empty (never null) //Shrink the circular pointer //Cycle from Marker to valve