001    package org.hamcrest;
002    
003    /**
004     * The ability of an object to describe itself.
005     */
006    public interface SelfDescribing {
007        /**
008         * Generates a description of the object.  The description may be part of a
009         * a description of a larger object of which this is just a component, so it 
010         * should be worded appropriately.
011         * 
012         * @param description
013         *     The description to be built or appended to.
014         */
015        void describeTo(Description description);
016    }