1
2
3
4
5
6 package mockit.internal.expectations.argumentMatching;
7
8 import edu.umd.cs.findbugs.annotations.NonNull;
9 import edu.umd.cs.findbugs.annotations.Nullable;
10
11 import java.util.List;
12
13 public final class CaptureMatcher<T> implements ArgumentMatcher<CaptureMatcher<T>> {
14 @NonNull
15 private final List<T> valueHolder;
16 @Nullable
17 private Class<?> expectedType;
18
19 public CaptureMatcher(@NonNull List<T> valueHolder) {
20 this.valueHolder = valueHolder;
21 }
22
23 public void setExpectedType(@NonNull Class<?> expectedType) {
24 this.expectedType = expectedType;
25 }
26
27 @Override
28 public boolean same(@NonNull CaptureMatcher<T> other) {
29 return false;
30 }
31
32 @Override
33 public boolean matches(@Nullable Object argValue) {
34 if (expectedType == null || expectedType.isInstance(argValue)
35 || argValue == null && !expectedType.isPrimitive()) {
36
37 valueHolder.add((T) argValue);
38 }
39
40 return true;
41 }
42
43 @Override
44 public void writeMismatchPhrase(@NonNull ArgumentMismatch argumentMismatch) {
45 }
46 }