| 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 selfDescribing) { |
| return new StringDescription().appendDescriptionOf(selfDescribing).toString(); |
| } |
| |
| /** |
| * Alias for {@link #toString(SelfDescribing)}. |
| */ |
| public static String asString(SelfDescribing selfDescribing) { |
| return toString(selfDescribing); |
| } |
| |
| @Override |
| protected void append(String str) { |
| try { |
| out.append(str); |
| } catch (IOException e) { |
| throw new RuntimeException("Could not write description", e); |
| } |
| } |
| |
| @Override |
| 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. |
| */ |
| @Override |
| public String toString() { |
| return out.toString(); |
| } |
| } |