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 public final class AlwaysTrueMatcher implements ArgumentMatcher<AlwaysTrueMatcher> {
12 public static final ArgumentMatcher<?> ANY_STRING = new AlwaysTrueMatcher(String.class, "String");
13 public static final ArgumentMatcher<?> ANY_BOOLEAN = new AlwaysTrueMatcher(Boolean.class, "boolean");
14 public static final ArgumentMatcher<?> ANY_CHAR = new AlwaysTrueMatcher(Character.class, "char");
15 public static final ArgumentMatcher<?> ANY_BYTE = new AlwaysTrueMatcher(Byte.class, "byte");
16 public static final ArgumentMatcher<?> ANY_SHORT = new AlwaysTrueMatcher(Short.class, "short");
17 public static final ArgumentMatcher<?> ANY_INT = new AlwaysTrueMatcher(Integer.class, "int");
18 public static final ArgumentMatcher<?> ANY_FLOAT = new AlwaysTrueMatcher(Float.class, "float");
19 public static final ArgumentMatcher<?> ANY_LONG = new AlwaysTrueMatcher(Long.class, "long");
20 public static final ArgumentMatcher<?> ANY_DOUBLE = new AlwaysTrueMatcher(Double.class, "double");
21 public static final ArgumentMatcher<?> ANY_VALUE = new AlwaysTrueMatcher(Object.class, null);
22
23 @NonNull
24 private final Class<?> expectedType;
25 @Nullable
26 private final String typeName;
27
28 private AlwaysTrueMatcher(@NonNull Class<?> expectedType, @Nullable String typeName) {
29 this.expectedType = expectedType;
30 this.typeName = typeName;
31 }
32
33 @Override
34 public boolean same(@NonNull AlwaysTrueMatcher other) {
35 return expectedType == other.expectedType;
36 }
37
38 @Override
39 public boolean matches(@Nullable Object argValue) {
40 return argValue == null || expectedType.isInstance(argValue);
41 }
42
43 @Override
44 public void writeMismatchPhrase(@NonNull ArgumentMismatch argumentMismatch) {
45 String parameterTypeName = typeName != null ? typeName : argumentMismatch.getParameterType();
46 argumentMismatch.append("any ").append(parameterTypeName);
47 }
48 }