package org.cryptocoinpartners.schema; import java.util.concurrent.Semaphore; import org.cryptocoinpartners.util.Replay; import org.joda.time.Instant; import org.joda.time.Interval; import com.google.inject.assistedinject.Assisted; public interface ReplayFactory { Replay all(boolean orderByTimeReceived); Replay all(boolean orderByTimeReceived, Semaphore semaphore); Replay since(@Assisted("startTime") Instant start, boolean orderByTimeReceived); Replay since(@Assisted("startTime") Instant start, boolean orderByTimeReceived, Semaphore semaphore); Replay until(@Assisted("endTime") Instant end, boolean orderByTimeReceived, @Assisted("until") boolean until); Replay until(@Assisted("endTime") Instant end, boolean orderByTimeReceived, Semaphore semaphore, @Assisted("until") boolean until); Replay between(@Assisted("startTime") Instant start, @Assisted("endTime") Instant end, boolean orderByTimeReceived); Replay between(@Assisted("startTime") Instant start, @Assisted("endTime") Instant end, boolean orderByTimeReceived, Semaphore semaphore); Replay during(Interval interval, boolean orderByTimeReceived); Replay during(Interval interval, boolean orderByTimeReceived, Semaphore semaphore); Replay create(Interval replayTimeInterval, boolean orderByTimeReceived); Replay create(Interval replayTimeInterval, boolean orderByTimeReceived, Semaphore semaphore); }