class ConstantFlowRegulator implements ServiceWrapper {

    protected synchronized boolean canProceed() {
        if (requestPerSecondThreshold == -1) {
            return true;
        }

        if (lastRequestOccurance == 0) {
            lastRequestOccurance = System.currentTimeMillis();
            return true;
        }

        if ((System.currentTimeMillis() - lastRequestOccurance) > deltaWaitTimeMillis) {
            lastRequestOccurance = System.currentTimeMillis();
            return true;
        }

        return false;
    }

    public  ConstantFlowRegulator();
    public  ConstantFlowRegulator(int requestsPerSecond);
    public  ConstantFlowRegulator(int requestsPerSecond,
                                 ConstantFlowRegulatorExceptionMapper<? extends Exception> mapper);

}