| package org.hamcrest.core; |
| |
| import org.hamcrest.BaseMatcher; |
| import org.hamcrest.Description; |
| import org.hamcrest.Matcher; |
| |
| |
| /** |
| * Is the value the same object as another value? |
| */ |
| public class IsSame<T> extends BaseMatcher<T> { |
| private final T object; |
| |
| public IsSame(T object) { |
| this.object = object; |
| } |
| |
| @Override |
| public boolean matches(Object arg) { |
| return arg == object; |
| } |
| |
| @Override |
| public void describeTo(Description description) { |
| description.appendText("sameInstance(") |
| .appendValue(object) |
| .appendText(")"); |
| } |
| |
| /** |
| * Creates a matcher that matches only when the examined object is the same instance as |
| * the specified target object. |
| * |
| * @param target |
| * the target instance against which others should be assessed |
| */ |
| public static <T> Matcher<T> sameInstance(T target) { |
| return new IsSame<T>(target); |
| } |
| |
| /** |
| * Creates a matcher that matches only when the examined object is the same instance as |
| * the specified target object. |
| * |
| * @param target |
| * the target instance against which others should be assessed |
| */ |
| public static <T> Matcher<T> theInstance(T target) { |
| return new IsSame<T>(target); |
| } |
| } |