001    package org.nakedobjects.applib.spec;
002    
003    /**
004     * An implementation of the <i>Specification</i> pattern, as described in
005     * Eric Evans' <i>Domain Driven Design</i>, p224.
006     */
007    public interface Specification {
008        
009        /**
010         * If <tt>null</tt> then satisfied, otherwise is reason why the specification is
011         * not satisfied.
012         */
013        public String satisfies(Object obj);
014    }