blob: 73bfa3855af5f5a1d28bade637f834d4921fe435 [file] [log] [blame]
package org.hamcrest;
/**
* A description of a Matcher. A Matcher will describe itself to a description
* which can later be used for reporting.
*
* @see Matcher#describeTo(Description)
*/
public interface Description {
/**
* A description that consumes input but does nothing.
*/
static final Description NONE = new NullDescription();
/**
* Appends some plain text to the description.
*/
Description appendText(String text);
/**
* Appends the description of a {@link SelfDescribing} value to this description.
*/
Description appendDescriptionOf(SelfDescribing value);
/**
* Appends an arbitrary value to the description.
*/
Description appendValue(Object value);
/**
* Appends a list of values to the description.
*/
<T> Description appendValueList(String start, String separator, String end,
T... values);
/**
* Appends a list of values to the description.
*/
<T> Description appendValueList(String start, String separator, String end,
Iterable<T> values);
/**
* Appends a list of {@link org.hamcrest.SelfDescribing} objects
* to the description.
*/
Description appendList(String start, String separator, String end,
Iterable<? extends SelfDescribing> values);
public static final class NullDescription implements Description {
@Override
public Description appendDescriptionOf(SelfDescribing value) {
return this;
}
@Override
public Description appendList(String start, String separator,
String end, Iterable<? extends SelfDescribing> values) {
return this;
}
@Override
public Description appendText(String text) {
return this;
}
@Override
public Description appendValue(Object value) {
return this;
}
@Override
public <T> Description appendValueList(String start, String separator,
String end, T... values) {
return this;
}
@Override
public <T> Description appendValueList(String start, String separator,
String end, Iterable<T> values) {
return this;
}
@Override
public String toString() {
return "";
}
}
}