/* * Copyright (c) 2006 Rogério Liesenfeld * This file is subject to the terms of the MIT license (see LICENSE.txt). */ package mockit.internal.expectations.argumentMatching; import javax.annotation.*; public final class AlwaysTrueMatcher implements ArgumentMatcher<AlwaysTrueMatcher> { public static final ArgumentMatcher<?> ANY_STRING = new AlwaysTrueMatcher(String.class); public static final ArgumentMatcher<?> ANY_BOOLEAN = new AlwaysTrueMatcher(Boolean.class); public static final ArgumentMatcher<?> ANY_CHAR = new AlwaysTrueMatcher(Character.class); public static final ArgumentMatcher<?> ANY_BYTE = new AlwaysTrueMatcher(Byte.class); public static final ArgumentMatcher<?> ANY_SHORT = new AlwaysTrueMatcher(Short.class); public static final ArgumentMatcher<?> ANY_INT = new AlwaysTrueMatcher(Integer.class); public static final ArgumentMatcher<?> ANY_FLOAT = new AlwaysTrueMatcher(Float.class); public static final ArgumentMatcher<?> ANY_LONG = new AlwaysTrueMatcher(Long.class); public static final ArgumentMatcher<?> ANY_DOUBLE = new AlwaysTrueMatcher(Double.class); public static final ArgumentMatcher<?> ANY_VALUE = new AlwaysTrueMatcher(Object.class); @Nonnull private final Class<?> expectedType; private AlwaysTrueMatcher(@Nonnull Class<?> expectedType) { this.expectedType = expectedType; } @Override public boolean same(@Nonnull AlwaysTrueMatcher other) { return expectedType == other.expectedType; } @Override public boolean matches(@Nullable Object argValue) { return argValue == null || expectedType.isInstance(argValue); } @Override public void writeMismatchPhrase(@Nonnull ArgumentMismatch argumentMismatch) { argumentMismatch.append("any ").append(argumentMismatch.getParameterType()); } }