blob: 366e9740e0564afba873a9cab5daadb5b1b932a8 (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package au.id.zancanaro.javacheck.state.queue.commands;
import au.id.zancanaro.javacheck.Generator;
import au.id.zancanaro.javacheck.state.Command;
import au.id.zancanaro.javacheck.state.CommandValue;
import au.id.zancanaro.javacheck.state.queue.QueueState;
import java.util.ArrayList;
import java.util.List;
public class Offer<T> extends Command<QueueState<T>, T, Void> {
public final Generator<T> generator;
public Offer(Generator<T> argGen) {
this.generator = argGen;
}
@Override
public Generator<T> argsGenerator(QueueState<T> state) {
return generator;
}
@Override
public boolean preCondition(QueueState<T> state, T args) {
return state != null;
}
@Override
public Void runCommand(QueueState<T> state, T args) {
state.getConcreteQueue().offer(args);
return null;
}
@Override
public QueueState<T> nextState(QueueState<T> state, T args, CommandValue<Void> result) {
List<T> newState = new ArrayList<>(state.getAbstractQueue());
newState.add(args);
return state.withAbstractQueue(newState);
}
}
|