package org.hamcrest; import java.io.IOException; /** * A {@link Description} that is stored as a string. */ public class StringDescription extends BaseDescription { private final Appendable out; public StringDescription() { this(new StringBuilder()); } public StringDescription(Appendable out) { this.out = out; } /** * Return the description of a {@link SelfDescribing} object as a String. * * @param selfDescribing * The object to be described. * @return * The description of the object. */ public static String toString(SelfDescribing value) { return new StringDescription().appendDescriptionOf(value).toString(); } /** * Alias for {@link #toString(SelfDescribing)}. */ public static String asString(SelfDescribing selfDescribing) { return toString(selfDescribing); } protected void append(String str) { try { out.append(str); } catch (IOException e) { throw new RuntimeException("Could not write description", e); } } protected void append(char c) { try { out.append(c); } catch (IOException e) { throw new RuntimeException("Could not write description", e); } } /** * Returns the description as a string. */ public String toString() { return out.toString(); } }