001 /* Copyright (c) 2000-2006 hamcrest.org 002 */ 003 package org.hamcrest.core; 004 005 import org.hamcrest.Description; 006 import org.hamcrest.Matcher; 007 import org.hamcrest.Factory; 008 import org.hamcrest.BaseMatcher; 009 010 011 /** 012 * A matcher that always returns <code>true</code>. 013 */ 014 public class IsAnything<T> extends BaseMatcher<T> { 015 016 private final String message; 017 018 public IsAnything() { 019 this("ANYTHING"); 020 } 021 022 public IsAnything(String message) { 023 this.message = message; 024 } 025 026 @Override 027 public boolean matches(Object o) { 028 return true; 029 } 030 031 @Override 032 public void describeTo(Description description) { 033 description.appendText(message); 034 } 035 036 /** 037 * Creates a matcher that always matches, regardless of the examined object. 038 */ 039 @Factory 040 public static Matcher<Object> anything() { 041 return new IsAnything<Object>(); 042 } 043 044 /** 045 * Creates a matcher that always matches, regardless of the examined object, but describes 046 * itself with the specified {@link String}. 047 * 048 * @param description 049 * a meaningful {@link String} used when describing itself 050 */ 051 @Factory 052 public static Matcher<Object> anything(String description) { 053 return new IsAnything<Object>(description); 054 } 055 }